diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-01-11 11:04:22 +0100 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-01-11 11:04:22 +0100 |
commit | 97ff88ac1c4c5a769fdd4a288fe810c62835e8c2 (patch) | |
tree | 6bc68925a05d6a2895f072afe1209ec0a2d52aa8 /vespa-application-maven-plugin/src/main/java | |
parent | e8ec6b51dcf52fcbf893eb2c1dbc0206e80a28ef (diff) |
Let vespa-application-plugin store meta data about build in package
Diffstat (limited to 'vespa-application-maven-plugin/src/main/java')
-rw-r--r-- | vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java b/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java index 1d20a06d0da..bd149e5a41e 100644 --- a/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java +++ b/vespa-application-maven-plugin/src/main/java/com/yahoo/container/plugin/mojo/ApplicationMojo.java @@ -15,6 +15,8 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.Collections; import java.util.List; @@ -38,6 +40,7 @@ public class ApplicationMojo extends AbstractMojo { File applicationPackage = new File(project.getBasedir(), sourceDir); File applicationDestination = new File(project.getBasedir(), destinationDir); copyApplicationPackage(applicationPackage, applicationDestination); + addBuildMetaData(applicationDestination); File componentsDir = createComponentsDir(applicationDestination); copyModuleBundles(project.getBasedir(), componentsDir); @@ -50,6 +53,24 @@ public class ApplicationMojo extends AbstractMojo { } } + /** Writes meta data about this package if the destination directory exists, and the "vespaversion" property is set. */ + private void addBuildMetaData(File applicationDestination) throws MojoExecutionException { + String compileVersion = project.getProperties().getProperty("vespaversion"); + if ( ! applicationDestination.exists() || compileVersion == null) + return; + + String metaData = String.format("{\"compileVersion\": \"%s\",\n \"buildTime\": %d}", + compileVersion, + System.currentTimeMillis()); + try { + Files.write(applicationDestination.toPath().resolve("build-meta.json"), + metaData.getBytes(StandardCharsets.UTF_8)); + } + catch (IOException e) { + throw new MojoExecutionException("Failed writing compile version and build time.", e); + } + } + private void copyBundlesForSubModules(File componentsDir) throws MojoExecutionException { List<String> modules = emptyListIfNull(project.getModules()); for (String module : modules) { |