在Eclipse中编译Maven项目时,JRE和依赖项之间的订单问题

时间:2016-12-12 13:24:42

标签: java eclipse maven

我有编译错误,因为编译器从依赖库而不是JRE中的类中获取类。 该类在两个库中定义,但我不知道如何建立首选顺序。

我可以在Eclipse中完成:属性 - > Java构建路径 - >订单和出口,并重新排序。但是当Eclipse的Eclipse插件再次构建项目时,这个命令就会丢失。

如果我排除干扰子相关性问题就会消失,但我不确定它将来是否会产生执行错误。

有没有办法修复JRE和依赖项之间的顺序(我猜是使用Maven)?

修改javax.xml.XMLConstantsJDK库和stax-api库中定义(这是我需要的jasperreports的依赖项)。 Eclipse的编译器sais javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI不存在,对stax-api中声明但实际存在于JDK中的那个是真的。 我希望编译器首先在JDK中查找该类。

1 个答案:

答案 0 :(得分:0)

在maven中,您可以使用<exclusion>标记来排除特定的传递依赖关系。像这样:

<dependency>
    <groupId>sample.ProjectB</groupId>
    <artifactId>Project-B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <exclusions>
        <exclusion>
            <groupId>sample.ProjectD</groupId> <!-- Exclude Project-D from Project-B -->
            <artifactId>Project-D</artifactId>
        </exclusion>
    </exclusions>
</dependency>

请参阅https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html