[ 
https://issues.apache.org/jira/browse/MDEP-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17899463#comment-17899463
 ] 

ASF GitHub Bot commented on MDEP-776:
-------------------------------------

elharo commented on code in PR #463:
URL: 
https://github.com/apache/maven-dependency-plugin/pull/463#discussion_r1848190882


##########
src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java:
##########
@@ -111,6 +109,21 @@ protected void doExecute() throws MojoExecutionException {
         Set<Artifact> artifacts = dss.getResolvedDependencies();
 
         if (!useRepositoryLayout) {
+            Map<String, Integer> copies = new HashMap<>();
+            for (Artifact artifactItem : artifacts) {
+                String destFileName = DependencyUtil.getFormattedFileName(
+                        artifactItem, stripVersion, prependGroupId, 
useBaseVersion, stripClassifier);
+                int numCopies = copies.getOrDefault(destFileName, 0);
+                copies.put(destFileName, numCopies + 1);
+            }
+            for (Map.Entry<String, Integer> entry : copies.entrySet()) {
+                if (entry.getValue() > 1) {
+                    getLog().warn("Multiple files with the name " + 
entry.getKey() + " in the dependency tree.");
+                    getLog().warn(
+                                    "Not all jars will be available. Consider 
using prependGroupId, useSubDirectoryPerArtifact, or useRepositoryLayout.");

Review Comment:
   done





> copy-dependencies overwrites artifacts of the same artifact id
> --------------------------------------------------------------
>
>                 Key: MDEP-776
>                 URL: https://issues.apache.org/jira/browse/MDEP-776
>             Project: Maven Dependency Plugin
>          Issue Type: Bug
>          Components: copy-dependencies
>    Affects Versions: 3.1.2, 3.2.0
>            Reporter: Nikolaos Georgiou
>            Assignee: Elliotte Rusty Harold
>            Priority: Major
>
> We have a project which has 2 dependencies of different groupId but same 
> artifactId and version, e.g. com.acme:foo:1.2.3 and com.ecorp:foo:1.2.3
> We use the copy-dependencies goal of the plugin to copy libraries under 
> target/lib folder.
> Actual Result:
>  * only one foo.jar survives in the target/lib folder. The other one silently 
> gets overwritten. This leads to difficult to diagnose runtime errors, as one 
> JAR is missing.
>  
> Expected Result:
>  * it should at least give a warning, if not an error, that it has 
> overwritten an artifact during this process
>  
> Known workaround:
>  * we activated useRepositoryLayout, which allows both artifacts to survive 
> under a directory structure, which complicates a bit our classpath building 
> process (from target/lib/* we need to find all the JARs with a bit of bash 
> glue)
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to