Uploaded image for project: 'Maven Dependency Plugin'
  1. Maven Dependency Plugin
  2. MDEP-294

copy-dependencies goal doesn't properly respect classifier when creating base version of snapshots



    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 2.1
    • Fix Version/s: None
    • Component/s: copy-dependencies
    • Labels:
    • Flags:


      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.


        1. TestCopyDependenciesMojo2.diff
          4 kB
          Tim Downey
        2. TestCopyDependenciesMojo.java
          25 kB
          Tim Downey
        3. CopyDependenciesMojo.java.diff
          1 kB
          Tim Downey
        4. CopyDependenciesMojo.java
          8 kB
          Tim Downey



            • Assignee:
              tim.downey Tim Downey
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: