diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/Features.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/Features.kt new file mode 100644 index 00000000..83e01827 --- /dev/null +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/Features.kt @@ -0,0 +1,8 @@ +package com.beust.kobalt + +class Features { + companion object { + /** If true, uses timestamps to speed up the tasks */ + const val USE_TIMESTAMPS = true + } +} diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt index 16836248..f330e7e5 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt @@ -1,5 +1,6 @@ package com.beust.kobalt.internal +import com.beust.kobalt.Features import com.beust.kobalt.KobaltException import com.beust.kobalt.TaskResult import com.beust.kobalt.api.* @@ -170,7 +171,7 @@ abstract class JvmCompilerPlugin @Inject constructor( sourceDirectories.add(sourceDirectory) } val info = createCompilerActionInfo(project, context, isTest = false) - if (isOutdated(project, context, info)) { + if (! Features.USE_TIMESTAMPS || isOutdated(project, context, info)) { val compiler = ActorUtils.selectAffinityActor(project, context, context.pluginInfo.compilerContributors) if (compiler != null) { return compiler.compile(project, context, info) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KFiles.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KFiles.kt index bdde58b5..76558e90 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KFiles.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KFiles.kt @@ -1,11 +1,8 @@ package com.beust.kobalt.misc -import com.beust.kobalt.IFileSpec -import com.beust.kobalt.SystemProperties -import com.beust.kobalt.Variant +import com.beust.kobalt.* import com.beust.kobalt.api.Kobalt import com.beust.kobalt.api.Project -import com.beust.kobalt.homeDir import com.beust.kobalt.internal.build.BuildFile import com.beust.kobalt.maven.Md5 import java.io.File @@ -198,11 +195,12 @@ class KFiles { } else if (src.isDirectory) { dstFile.mkdirs() } else { - if (dstFile.exists() && Md5.toMd5(src) == Md5.toMd5(dstFile)) { + if (Features.USE_TIMESTAMPS && dstFile.exists() && Md5.toMd5(src) == Md5.toMd5(dstFile)) { log(2, " Identical files, not copying $src to $dstFile") } else { if (src.copyTo(dstFile, true) != src.length()) { - if (onError(src, IOException("src.length() != dst.length()")) == OnErrorAction.TERMINATE) + if (onError(src, + IOException("src.length() != dst.length()")) == OnErrorAction.TERMINATE) return false } } diff --git a/src/main/kotlin/com/beust/kobalt/plugin/packaging/PackagingPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/packaging/PackagingPlugin.kt index f1d6695b..3ed06c25 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/packaging/PackagingPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/packaging/PackagingPlugin.kt @@ -1,5 +1,6 @@ package com.beust.kobalt.plugin.packaging +import com.beust.kobalt.Features import com.beust.kobalt.IFileSpec import com.beust.kobalt.IFileSpec.FileSpec import com.beust.kobalt.IFileSpec.Glob @@ -238,7 +239,7 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana val archiveDir = File(libsDir(project)) val result = File(archiveDir.path, fullArchiveName) log(2, "Creating $result") - if (isOutdated(project.directory, includedFiles, result)) { + if (! Features.USE_TIMESTAMPS || isOutdated(project.directory, includedFiles, result)) { val outStream = outputStreamFactory(FileOutputStream(result)) JarUtils.addFiles(project.directory, includedFiles, outStream, expandJarFiles) log(2, text = "Added ${includedFiles.size} files to $result")