You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2019/12/08 15:55:48 UTC

[maven-studies] branch maven-buildinfo-plugin updated: implement mvn.build-root for modules

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 <hb...@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;
+    }
 }