gpt4 book ai didi

java - 如何排除 Maven 插件的直接依赖

转载 作者:搜寻专家 更新时间:2023-10-30 21:29:44 25 4
gpt4 key购买 nike

我想排除对 Maven 插件的直接依赖和 this answer 中描述的方法不起作用(如 this comment 所示)。

举个例子:

<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 等效项替换对该 Artifact 的依赖性 [这似乎发生在 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] 加载的”,这是我的目标。)

最佳答案

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

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

关于java - 如何排除 Maven 插件的直接依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com