Thorsten Glaser created MNG-6724: ------------------------------------ Summary: Ability to exchange dependencies Key: MNG-6724 URL: https://issues.apache.org/jira/browse/MNG-6724 Project: Maven Issue Type: New Feature Reporter: Thorsten Glaser
Feature Request: I would like to have the explicit ability to exchange dependencies globally, such as from dependencyManagement. Currently, I can do <excludes> on a dependency’’s transitive dependency, then add an explicit <dependency> to the POM of my final WAR (and possibly a test-scoped one on the JAR it’s in), but that makes the maven-dependency-plugin:3.1.1:analyze-only goal complain about a declared but unused dependency. With the javax.* → jakarta moves (and some others, e.g. I need the com.sun.activation version of jakarta.activation instead of the Jakarta one) and multiple JAXB implementations around, this is becoming troublesome. Therefore, I would like for Maven to allow something like this: {code:java} <dependencyManagement> <substitutions> <substitution> <exclusion> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </exclusion> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> </dependency> </substitution> <!-- … --> </substitutions> <dependencies> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>${jaxb-api.version}</version> </dependency> <!-- … --> </dependencies> </dependencyManagement> {code} This would recursively replace the old JAXB-API with the new one but not add them where unnecessary, and make the maven-dependency-plugin’s checks do the right thing. Thanks in advance for consideration! -- This message was sent by Atlassian JIRA (v7.6.14#76016)