Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-5387

Add ability to replace an artifact in mid-build

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 3.1.0-alpha-1, 3.2.3
    • None
    • None

    Description

      To clean up how the shade plugin works, we need an API to allow it to say, 'please replace the jar file that the jar plugin has given you with this other one here.'

      It turns out we already more or less have this method, due to a collection of historical conflict.

      At some point in time, http://jira.codehaus.org/browse/MNG-3119 called for Maven to reject more than one call to attach the same artifact to the build. However, this proved an unacceptable incompatibility at the time. Instead, under http://jira.codehaus.org/browse/MNG-4013, Maven was changed to log but otherwise ignore all calls to 'addArtifact' on MavenProject after the first for a G/A/V/C/T coordinate.

      This decision to take 'first wins' instead of 'last wins' doesn't help much of anyone. It prevents something like shade from intentionally displacing an earlier execution's results, and while it doesn't produce backtraces, ever, it can still be entirely confusing.

      Under this JIRA, I'm switching to 'last one wins'. This could still be confusing, and someone might argue that there should be some way to distinguish casual and incorrect user config that results in two plugins trying to deliver the same thing from something intentional. On the other hand, if two plugins are configured to attach the same G/A/V/C, having the last one win makes more sense, and has the effect of enabling the desired behavior in shade.

      Attachments

        Issue Links

          Activity

            People

              olamy Olivier Lamy
              bmargulies Benson Margulies
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: