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 2020/01/05 16:09:33 UTC

[maven-studies] 01/02: add module index for aggregate buildinfo to avoid key collision

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

commit 6ff96cc3722e0cf93ef2ee520c755600178088e6
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sun Jan 5 17:04:41 2020 +0100

    add module index for aggregate buildinfo to avoid key collision
---
 src/it/multi/verify.groovy                         |  7 +++---
 .../apache/maven/plugins/buildinfo/SaveMojo.java   | 29 +++++++++++++---------
 2 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/src/it/multi/verify.groovy b/src/it/multi/verify.groovy
index 1dd1559..b8faa3c 100644
--- a/src/it/multi/verify.groovy
+++ b/src/it/multi/verify.groovy
@@ -47,9 +47,10 @@ assert buildinfo.contains( "outputs.0.filename=multi-modB-1.0-SNAPSHOT.jar" )
 buildinfo = aggregate.text
 assert buildinfo.contains( "mvn.rebuild-args=-DskipTests verify" )
 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" )
-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" )
+assert buildinfo.contains( "outputs.1.coordinates=org.apache.maven.plugins.it:multi-modA" )
+assert buildinfo.contains( "outputs.1.0.filename=multi-modA-1.0-SNAPSHOT.jar" )
+assert buildinfo.contains( "outputs.2.coordinates=org.apache.maven.plugins.it:multi-modB" )
+assert buildinfo.contains( "outputs.2.0.filename=multi-modB-1.0-SNAPSHOT.jar" )
 
 // check existence of buildinfos in local repository
 File local = new File( basedir, "../../local-repo/org/apache/maven/plugins/it/multi/1.0-SNAPSHOT/multi-1.0-SNAPSHOT.buildinfo")
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 41da269..0c19827 100644
--- a/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java
+++ b/src/main/java/org/apache/maven/plugins/buildinfo/SaveMojo.java
@@ -146,7 +146,7 @@ public class SaveMojo
             {
                 p.println();
                 p.println( "# output" );
-                printOutput( p, project );
+                printOutput( p, project, -1 );
             }
 
             getLog().info( "Saved info on build to " + buildinfoFile );
@@ -225,13 +225,20 @@ public class SaveMojo
         }
     }
 
-    private void printOutput( PrintWriter p, MavenProject project )
+    private void printOutput( PrintWriter p, MavenProject project, int projectIndex )
             throws MojoExecutionException
     {
+        String prefix = "outputs.";
+        if ( projectIndex >= 0 )
+        {
+            // aggregated buildinfo output
+            prefix += projectIndex + ".";
+            p.println( prefix + "coordinates=" + project.getGroupId() + ':' + project.getArtifactId() );
+        }
         int n = 0;
         if ( project.getArtifact().getFile() != null )
         {
-            printArtifact( p, n++, project.getArtifact() );
+            printArtifact( p, prefix, n++, project.getArtifact() );
         }
 
         for ( Artifact attached : project.getAttachedArtifacts() )
@@ -251,17 +258,17 @@ public class SaveMojo
                 // TEMPORARY ignore javadoc, waiting for MJAVADOC-627 in m-javadoc-p 3.2.0
                 continue;
             }
-            printArtifact( p, n++, attached );
+            printArtifact( p, prefix, n++, attached );
         }
     }
 
-    private void printArtifact( PrintWriter p, int i, Artifact artifact )
+    private void printArtifact( PrintWriter p, String prefix, int i, Artifact artifact )
             throws MojoExecutionException
     {
         File file = artifact.getFile();
-        p.println( "outputs." + i + ".filename=" + file.getName() );
-        p.println( "outputs." + i + ".length=" + file.length() );
-        p.println( "outputs." + i + ".checksums.sha512=" + DigestHelper.calculateSha512( file ) );
+        p.println( prefix + i + ".filename=" + file.getName() );
+        p.println( prefix + i + ".length=" + file.length() );
+        p.println( prefix + i + ".checksums.sha512=" + DigestHelper.calculateSha512( file ) );
     }
 
     private MavenProject getExecutionRoot()
@@ -289,15 +296,13 @@ public class SaveMojo
             printRootInformation( p, root );
             p.println( "mvn.build-root=" + root.getGroupId() + ':' + root.getArtifactId() + ':' + root.getVersion() );
 
-            int n = 1;
+            int n = 0;
             for ( MavenProject project : reactorProjects )
             {
                 if ( project.getArtifact() != null )
                 {
                     p.println();
-                    p.println( "# " + n++ + '/' + reactorProjects.size() + ' ' + project.getGroupId() + ':'
-                        + project.getArtifactId() );
-                    printOutput( p, project );
+                    printOutput( p, project, n++ );
                 }
             }