我有编译错误,因为编译器从依赖库而不是JRE中的类中获取类。 该类在两个库中定义,但我不知道如何建立首选顺序。
我可以在Eclipse中完成:属性 - > Java构建路径 - >订单和出口,并重新排序。但是当Eclipse的Eclipse插件再次构建项目时,这个命令就会丢失。
如果我排除干扰子相关性问题就会消失,但我不确定它将来是否会产生执行错误。
有没有办法修复JRE和依赖项之间的顺序(我猜是使用Maven)?
修改
类javax.xml.XMLConstants
在JDK
库和stax-api
库中定义(这是我需要的jasperreports
的依赖项)。 Eclipse的编译器sais javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI
不存在,对stax-api
中声明但实际存在于JDK
中的那个是真的。
我希望编译器首先在JDK中查找该类。
答案 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