如何排除 Maven 插件的直接依赖关系
我想排除Maven插件的直接依赖关系,并且此答案中描述的方法不起作用(如此评论所示)。
举一个具体的例子:
<build>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.13.2</version>
<!-- more config -->
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.13.2</version>
<exclusions>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
我仍然在依赖项列表中看到(带有)。我做错了什么?javax.xml.bind:jaxb-api
mvn ... -X
(如果有人知道如何用该API的JDK 9等效物替换对该工件的依赖性[似乎发生在Java 8上,其中“JAXB API os从[jar:...jre/lib/rt.jar]“],我很高兴为此打开一期新问题。
更新
想法已经用完了,无论如何,这是一个实验,我通过在本地存储库中编辑插件来排除依赖关系。现在表明还有一个间接依赖关系(在这种情况下由),我可以使用上面的机制成功排除它。仅仅使用排除、从 和 、并不能解决问题。这表明排除通常有效,但显然不适用于插件的直接依赖关系。pom.xml
mvn ... -X
org.jvnet.jaxb2.maven2:maven-jaxb22-plugin
maven-jaxb2-plugin
maven-jaxb22-plugin
(顺便说一句,这确实导致了“Java JAXB API是从[jrt:/java.xml.bind]加载的”,这是我的目标。