This is an automated email from the ASF dual-hosted git repository. hboutemy pushed a commit to branch maven-buildinfo-plugin in repository https://gitbox.apache.org/repos/asf/maven-studies.git
The following commit(s) were added to refs/heads/maven-buildinfo-plugin by this push: new 6651c9f implement mvn.build-root for modules 6651c9f is described below commit 6651c9f39c9ff77609c4003ced509ca8c923d273 Author: Hervé Boutemy <hbout...@apache.org> AuthorDate: Sun Dec 8 16:55:44 2019 +0100 implement mvn.build-root for modules --- src/it/mono/verify.groovy | 1 + src/it/multi/verify.groovy | 11 ++++ .../apache/maven/plugins/buildinfo/SaveMojo.java | 59 +++++++++++++++------- 3 files changed, 54 insertions(+), 17 deletions(-) diff --git a/src/it/mono/verify.groovy b/src/it/mono/verify.groovy index 1f03264..6eedf1a 100644 --- a/src/it/mono/verify.groovy +++ b/src/it/mono/verify.groovy @@ -28,4 +28,5 @@ assert local.isFile() String buildinfo = buildinfoFile.text +assert buildinfo.contains( "outputs.0.filename=mono-1.0-SNAPSHOT.jar" ) assert buildinfo.contains( "mvn.minimum.version=3.0.5" ) diff --git a/src/it/multi/verify.groovy b/src/it/multi/verify.groovy index a240c8f..4f5d813 100644 --- a/src/it/multi/verify.groovy +++ b/src/it/multi/verify.groovy @@ -33,3 +33,14 @@ assert modA.isFile() File modB = new File( basedir, "../../local-repo/org/apache/maven/plugins/it/multi-modB/1.0-SNAPSHOT/multi-modB-1.0-SNAPSHOT.buildinfo") assert modB.isFile() + +String buildinfo = multi.text +assert buildinfo.contains( "mvn.rebuild-args=-DskipTests verify" ) + +buildinfo = modA.text +assert buildinfo.contains( "mvn.build-root=org.apache.maven.plugins.it:multi:1.0-SNAPSHOT" ) +assert buildinfo.contains( "outputs.0.filename=multi-modA-1.0-SNAPSHOT.jar" ) + +buildinfo = modB.text +assert buildinfo.contains( "mvn.build-root=org.apache.maven.plugins.it:multi:1.0-SNAPSHOT" ) +assert buildinfo.contains( "outputs.0.filename=multi-modB-1.0-SNAPSHOT.jar" ) diff --git a/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java b/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java index 7cdd4b6..890431c 100644 --- a/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java +++ b/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java @@ -111,25 +111,38 @@ public class SaveMojo p.println( "artifact-id=" + project.getArtifactId() ); p.println( "version=" + project.getVersion() ); p.println(); - printSourceInformation( p ); - p.println(); - p.println( "# build instructions" ); - p.println( "build-tool=mvn" ); - p.println( "# optional build setup url, as plugin parameter" ); - p.println(); - p.println( "# effective build environment information" ); - p.println( "java.version=" + System.getProperty( "java.version" ) ); - p.println( "java.vendor=" + System.getProperty( "java.vendor" ) ); - p.println( "os.name=" + System.getProperty( "os.name" ) ); - p.println(); - p.println( "# Maven rebuild instructions and effective environment" ); - p.println( "mvn.rebuild-args=" + rebuildArgs ); - p.println( "mvn.version=" + MavenVersion.createMavenVersionString() ); - if ( ( project.getPrerequisites() != null ) && ( project.getPrerequisites().getMaven() != null ) ) + if ( project.isExecutionRoot() ) + { + printSourceInformation( p ); + p.println(); + p.println( "# build instructions" ); + p.println( "build-tool=mvn" ); + p.println( "# optional build setup url, as plugin parameter" ); + p.println(); + p.println( "# effective build environment information" ); + p.println( "java.version=" + System.getProperty( "java.version" ) ); + p.println( "java.vendor=" + System.getProperty( "java.vendor" ) ); + p.println( "os.name=" + System.getProperty( "os.name" ) ); + p.println(); + p.println( "# Maven rebuild instructions and effective environment" ); + p.println( "mvn.rebuild-args=" + rebuildArgs ); + p.println( "mvn.version=" + MavenVersion.createMavenVersionString() ); + if ( ( project.getPrerequisites() != null ) && ( project.getPrerequisites().getMaven() != null ) ) + { + // TODO wrong algorithm, should reuse algorithm written in versions-maven-plugin + p.println( "mvn.minimum.version=" + project.getPrerequisites().getMaven() ); + } + } + else { - // TODO wrong algorithm, should reuse algorithm written in versions-maven-plugin - p.println( "mvn.minimum.version=" + project.getPrerequisites().getMaven() ); + // multi-module non execution root + p.println( "# build instructions" ); + p.println( "build-tool=mvn" ); + MavenProject root = getExecutionRoot(); + p.println( "mvn.build-root=" + root.getGroupId() + ':' + root.getArtifactId() + ':' + + root.getVersion() ); } + if ( project.getArtifact() != null ) { p.println(); @@ -191,4 +204,16 @@ public class SaveMojo p.println( "outputs." + i + ".length=" + file.length() ); p.println( "outputs." + i + ".checksums.sha512=" + DigestHelper.calculateSha512( file ) ); } + + private MavenProject getExecutionRoot() + { + for ( MavenProject p : reactorProjects ) + { + if ( p.isExecutionRoot() ) + { + return p; + } + } + return null; + } }