You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Elliotte Rusty Harold (Jira)" <ji...@apache.org> on 2019/12/19 13:41:00 UTC

[jira] [Updated] (MDEP-294) copy-dependencies goal doesn't properly respect classifier when creating base version of snapshots

     [ https://issues.apache.org/jira/browse/MDEP-294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Elliotte Rusty Harold updated MDEP-294:
---------------------------------------
    Priority: Minor  (was: Major)

> copy-dependencies goal doesn't properly respect classifier when creating base version of snapshots
> --------------------------------------------------------------------------------------------------
>
>                 Key: MDEP-294
>                 URL: https://issues.apache.org/jira/browse/MDEP-294
>             Project: Maven Dependency Plugin
>          Issue Type: Bug
>          Components: copy-dependencies
>    Affects Versions: 2.1
>            Reporter: Tim Downey
>            Priority: Minor
>         Attachments: CopyDependenciesMojo.java, CopyDependenciesMojo.java.diff, TestCopyDependenciesMojo.java, TestCopyDependenciesMojo2.diff
>
>
> CopyDependenciesMojo ignores any classifier on the artifact being copied when creating the base version of a snapshot.  It works correctly for the non-base (timestamped) version.  This leads to a mismatch in the copied dependencies where the timestamped version correctly keeps the classifier, but the base -SNAPSHOT version has the classifier completely dropped.
> The fix is simple, although a bit ugly.  In the installBaseSnapshot method, a check must be made for the presence of a classifier on the artifact being copied before using the ArtifactFactory to create a copy of the base version.  Ideally, the ArtifactFactory would expose a single method that takes all parameters, but unfortunately it does not.  This requires a separate 'if' check for the presence of a classifier.
> Another potential issue is that the method ArtifactFactory#createArtifactWithClassifier has no parameter for scope.  I don't think that causes any issue in this case, but is another reason why there should be a single method createArtifact that takes all combinations of parameters including classifier.
> I've attached a patch that will fix the issue, but not a test case since it looks like the maven-plugin-testing-tools-harness would need to be updated as well.  It doesn't appear to expose any artifacts that both have a classifier and are snapshots from the ArtifactStubFactory.  If deemed important, I can produce a patch for that as well along with a test.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)