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

标签 java maven jaxb

我想排除对 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/

相关文章:

java - 如何在 Android Studio 中删除 imageView 的边框?

java - 无法使用 jnetpcap 捕获谷歌搜索 URL

java - 如何在不使用 EOMONTH 的情况下在 Excel 中查找上个月的最后一天

java - 使用 JAXB 将 img.Xml 反射到 Java 对象中

java - 异常 cvc-elt.1 : Cannot find the declaration of element 'AsifXml' when trying to unmarshall using JAXB

xml - Jersey 2 (JAXB) XML 元素案例,列表不支持 XmlRootElement

java - 方法参数中的final关键字不改变

java - 如何从 Maven 项目创建独立的 jar?

maven - 如何让 grails 2.4.3 解决 <project-dir>/lib 中的依赖关系?

java - mvn clean 警告和 mvn install 错误