You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (Jira)" <ji...@apache.org> on 2020/06/08 19:51:00 UTC

[jira] [Closed] (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 ]

Michael Osipov closed MNG-5387.
-------------------------------
    Fix Version/s:     (was: 3.7.0-candidate)
       Resolution: Duplicate

Olivier, reclosing as dup of MNG-5868.

> 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: Olivier Lamy
>            Priority: Major
>
> 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
(v8.3.4#803005)