This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-artifact-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new 1becb62  [MARTIFACT-33] keep reference files in groupId dir
1becb62 is described below

commit 1becb62ae429613011dad5901a38e9059632daba
Author: HervĂ© Boutemy <[email protected]>
AuthorDate: Sun Apr 9 23:43:29 2023 +0200

    [MARTIFACT-33] keep reference files in groupId dir
---
 pom.xml                                                 |  2 +-
 src/it/compare-mono/verify.groovy                       |  4 ++--
 src/it/flatten/verify.groovy                            |  6 +++---
 .../maven/plugins/artifact/buildinfo/CompareMojo.java   |  2 +-
 .../artifact/buildinfo/ReferenceBuildinfoUtil.java      | 17 +++++++++++++----
 5 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/pom.xml b/pom.xml
index c8603dd..0fad70c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
   </parent>
 
   <artifactId>maven-artifact-plugin</artifactId>
-  <version>3.4.2-SNAPSHOT</version>
+  <version>3.5.0-SNAPSHOT</version>
   <packaging>maven-plugin</packaging>
 
   <name>Apache Maven Artifact Plugin</name>
diff --git a/src/it/compare-mono/verify.groovy 
b/src/it/compare-mono/verify.groovy
index 89a233d..413d44b 100644
--- a/src/it/compare-mono/verify.groovy
+++ b/src/it/compare-mono/verify.groovy
@@ -31,7 +31,7 @@ assert compare.contains( "ko=1" )
 assert compare.contains( 'okFiles="mono-1.0-SNAPSHOT.pom"' )
 assert compare.contains( 'koFiles="mono-1.0-SNAPSHOT.jar"' )
 if( File.separator == '/' ) {
-  assert compare.contains( '# diffoscope 
target/reference/mono-1.0-SNAPSHOT.jar target/mono-1.0-SNAPSHOT.jar' )
+  assert compare.contains( '# diffoscope 
target/reference/org.apache.maven.plugins.it.compare/mono-1.0-SNAPSHOT.jar 
target/mono-1.0-SNAPSHOT.jar' )
 } else {
-  assert compare.contains( '# diffoscope 
target\\reference\\mono-1.0-SNAPSHOT.jar target\\mono-1.0-SNAPSHOT.jar' )
+  assert compare.contains( '# diffoscope 
target\\reference\\org.apache.maven.plugins.it.compare\\mono-1.0-SNAPSHOT.jar 
target\\mono-1.0-SNAPSHOT.jar' )
 }
diff --git a/src/it/flatten/verify.groovy b/src/it/flatten/verify.groovy
index 7c3c393..1ce3451 100644
--- a/src/it/flatten/verify.groovy
+++ b/src/it/flatten/verify.groovy
@@ -21,9 +21,9 @@
 String compare = new File( basedir, 'target/flatten-1.0-SNAPSHOT.buildcompare' 
).text
 assert compare.contains( 'okFiles="flatten-1.0-SNAPSHOT.pom 
flatten-modB-1.0-SNAPSHOT.pom flatten-modA-1.0-SNAPSHOT.pom"' )
 
-assert new File( basedir, 'flattened-pom.xml' ).text == new File( basedir, 
'target/reference/flatten-1.0-SNAPSHOT.pom' ).text
-assert new File( basedir, 'modA/flattened-pom.xml' ).text == new File( 
basedir, 'target/reference/flatten-modA-1.0-SNAPSHOT.pom' ).text
-assert new File( basedir, 'modB/pom.xml' ).text == new File( basedir, 
'target/reference/flatten-modB-1.0-SNAPSHOT.pom' ).text
+assert new File( basedir, 'flattened-pom.xml' ).text == new File( basedir, 
'target/reference/org.apache.maven.plugins.it/flatten-1.0-SNAPSHOT.pom' ).text
+assert new File( basedir, 'modA/flattened-pom.xml' ).text == new File( 
basedir, 
'target/reference/org.apache.maven.plugins.it/flatten-modA-1.0-SNAPSHOT.pom' 
).text
+assert new File( basedir, 'modB/pom.xml' ).text == new File( basedir, 
'target/reference/org.apache.maven.plugins.it/flatten-modB-1.0-SNAPSHOT.pom' 
).text
 
 String buildinfo = new File( basedir, 'target/flatten-1.0-SNAPSHOT.buildinfo' 
).text
 assert buildinfo.contains( "outputs.0.0.length=" + new File( basedir, 
'flattened-pom.xml' ).size() )
diff --git 
a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java 
b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
index 9e900b0..03df3ad 100644
--- a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
+++ b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
@@ -261,7 +261,7 @@ public class CompareMojo extends AbstractBuildinfoMojo {
         File actual = a.getFile();
         // notice: actual file name may have been defined in pom
         // reference file name is taken from repository format
-        File reference = new File(referenceDir, getRepositoryFilename(a));
+        File reference = new File(new File(referenceDir, a.getGroupId()), 
getRepositoryFilename(a));
         if ((actual == null) || (reference == null)) {
             return "missing file for " + a.getId() + " reference = "
                     + (reference == null ? "null" : relative(reference)) + " 
actual = "
diff --git 
a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/ReferenceBuildinfoUtil.java
 
b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/ReferenceBuildinfoUtil.java
index dcdb4cc..37aa2a0 100644
--- 
a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/ReferenceBuildinfoUtil.java
+++ 
b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/ReferenceBuildinfoUtil.java
@@ -153,7 +153,7 @@ class ReferenceBuildinfoUtil {
             }
 
             // generate buildinfo from reference artifacts
-            referenceBuildinfo = getReference(buildinfoFile);
+            referenceBuildinfo = getReference(null, buildinfoFile);
             try (PrintWriter p = new PrintWriter(new BufferedWriter(
                     new OutputStreamWriter(new 
FileOutputStream(referenceBuildinfo), StandardCharsets.UTF_8)))) {
                 BuildInfoWriter bi = new BuildInfoWriter(log, p, mono, 
artifactHandlerManager, rtInformation);
@@ -297,7 +297,7 @@ class ReferenceBuildinfoUtil {
             ArtifactResult result =
                     repoSystem.resolveArtifact(new 
NoWorkspaceRepositorySystemSession(repoSession), request);
             File resultFile = result.getArtifact().getFile();
-            File destFile = getReference(resultFile);
+            File destFile = getReference(artifact.getGroupId(), resultFile);
 
             FileUtils.copyFile(resultFile, destFile);
 
@@ -312,8 +312,17 @@ class ReferenceBuildinfoUtil {
         }
     }
 
-    private File getReference(File file) {
-        return new File(referenceDir, file.getName());
+    private File getReference(String groupId, File file) {
+        File dir;
+        if (groupId == null) {
+            dir = referenceDir;
+        } else {
+            dir = new File(referenceDir, groupId);
+            if (!dir.isDirectory()) {
+                dir.mkdir();
+            }
+        }
+        return new File(dir, file.getName());
     }
 
     private static class NoWorkspaceRepositorySystemSession extends 
AbstractForwardingRepositorySystemSession {

Reply via email to