如何排除Maven插件的直接依赖关系

我想排除Maven插件的直接依赖,并且此答案中描述的方法不起作用(如本评论所示 )。

作为一个特例:

   org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.13.2    org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.13.2   javax.xml.bind jaxb-api        

我仍然在依赖项列表中看到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-pluginmaven-jaxb22-plugin两种排除方法都不行。 这表明排除一般起作用,但显然不是插件的直接依赖。

(顺便说一句,这确实导致“Java JAXB API从[jrt:/java.xml.bind]”加载,这是我的目标。)

到目前为止,没有任何理由这样做,但这似乎是一个有效的。 我能想到的最干净的解决方案是允许使用“none”覆盖范围,以获得插件依赖性。

我已经为它创建了MNG-6222 ,不确定我们是否会为Maven3修复它,但至少在下一个专业中这样做是有意义的。

我有一个与maven-linkcheck-plugin类似的情况,最后我做了一个更powershell的方法来删除doxia-linkcheck依赖,并通过分叉maven-linkcheck-plugin并使用正确的依赖创建我自己的 fork来使用我的fork 。

使用依赖项检查依赖项列表:tree和solve WTF lib引入了lib依赖项,然后将其排除在其中。 也许你的依赖不可能是直接的。

我希望能帮助你。

编辑:只需遵循您的依赖层次结构