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 <[email protected]> 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++ ); } }
