From 9a5fcd1e38957219b4d374487f1e18d11a45e100 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Fri, 18 Dec 2015 22:51:48 +0400 Subject: [PATCH] Was recompiling the build file every time. --- .../main/kotlin/com/beust/kobalt/internal/build/BuildFile.kt | 5 +++-- src/main/kotlin/com/beust/kobalt/app/BuildFileCompiler.kt | 3 +-- src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/build/BuildFile.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/build/BuildFile.kt index 17954ed0..6e7a8976 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/build/BuildFile.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/build/BuildFile.kt @@ -6,12 +6,13 @@ import java.nio.file.Path import java.nio.file.attribute.BasicFileAttributes /** * Sometimes, build files are moved to temporary files, so we give them a specific name for clarity. + * @param path is the path where that file was moved, @param realPath is where the actual file is. */ -class BuildFile(val path: Path, val name: String) { +class BuildFile(val path: Path, val name: String, val realPath: Path = path) { public fun exists() : Boolean = Files.exists(path) public val lastModified : Long - get() = Files.readAttributes(path, BasicFileAttributes::class.java).lastModifiedTime().toMillis() + get() = Files.readAttributes(realPath, BasicFileAttributes::class.java).lastModifiedTime().toMillis() public val directory : File get() = path.toFile().directory } diff --git a/src/main/kotlin/com/beust/kobalt/app/BuildFileCompiler.kt b/src/main/kotlin/com/beust/kobalt/app/BuildFileCompiler.kt index 7653c7f0..c23c9e3e 100644 --- a/src/main/kotlin/com/beust/kobalt/app/BuildFileCompiler.kt +++ b/src/main/kotlin/com/beust/kobalt/app/BuildFileCompiler.kt @@ -10,7 +10,6 @@ import com.beust.kobalt.api.PluginProperties import com.beust.kobalt.api.Project import com.beust.kobalt.internal.PluginInfo import com.beust.kobalt.internal.build.BuildFile -import com.beust.kobalt.app.ParsedBuildFile import com.beust.kobalt.internal.build.VersionFile import com.beust.kobalt.maven.DependencyManager import com.beust.kobalt.misc.KFiles @@ -83,7 +82,7 @@ public class BuildFileCompiler @Inject constructor(@Assisted("buildFiles") val b val modifiedBuildFile = KFiles.createTempFile(".kt") KFiles.saveFile(modifiedBuildFile, parsedBuildFile.buildScriptCode) maybeCompileBuildFile(context, BuildFile(Paths.get(modifiedBuildFile.path), - "Modified ${Constants.BUILD_FILE_NAME}"), + "Modified ${Constants.BUILD_FILE_NAME}", buildFile.realPath), buildScriptJarFile, pluginUrls) val projects = buildScriptUtil.runBuildScriptJarFile(buildScriptJarFile, pluginUrls, context) result.addAll(projects) diff --git a/src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt b/src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt index 2623db8f..f68745d8 100644 --- a/src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt +++ b/src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt @@ -108,7 +108,8 @@ class ParsedBuildFile(val buildFile: BuildFile, val context: KobaltContext, val val buildScriptJarFile = File(buildScriptJar) if (! buildScriptUtil.isUpToDate(buildFile, File(buildScriptJar))) { buildScriptJarFile.parentFile.mkdirs() - generateJarFile(context, BuildFile(Paths.get(pluginSourceFile.path), "Plugins"), buildScriptJarFile) + generateJarFile(context, BuildFile(Paths.get(pluginSourceFile.path), "Plugins", + Paths.get(buildScriptJar)), buildScriptJarFile) VersionFile.generateVersionFile(buildScriptJarFile.parentFile) }