You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Christian Schulte (JIRA)" <ji...@apache.org> on 2015/12/18 01:08:46 UTC

[jira] [Updated] (MNG-5387) Add ability to replace an artifact in mid-build

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

Christian Schulte updated MNG-5387:
-----------------------------------
    Affects Version/s: 3.2.3

> Add ability to replace an artifact in mid-build
> -----------------------------------------------
>
>                 Key: MNG-5387
>                 URL: https://issues.apache.org/jira/browse/MNG-5387
>             Project: Maven
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 3.1.0-alpha-1, 3.2.3
>            Reporter: Benson Margulies
>            Assignee: Benson Margulies
>             Fix For: 3.1.0-alpha-1
>
>
> 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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)