在 eclipse 项目中更改 jar 的顺序

2022-09-04 05:02:54

我最近将一个eclipse Java项目转换为一个动态的Web项目。之前和之后的项目中列出的导入 jar 是相同的,但对动态 Web 项目的更改会导致以下编译错误:

W3C_XML_SCHEMA_NS_URI cannot be resolved or is not a field  

由以下代码行引发:

SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

我已经研究了这个错误,它似乎是由不同jar中的冲突版本抛出的,但是我比较了两个项目中的jar列表,它们是相同的,所以我认为必须改变jar的顺序。如何做到这一点?javax.xml.XMLConstants

从逻辑上讲,解决方案的一部分可能涉及确定哪些 jar 包含名为 的包。因此,我遵循@DiogoSantana的建议,使用“类型”向导在以下打印屏幕中获取结果:javax.xml.XMLConstants

然后,我听从了DiogoSantana的建议,跑了,得到了以下结果:mvn dependency:tree

接下来,我对以下更改:pom.xml

<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.2.7</version>
    <exclusions>
        <exclusion>
            <groupId>jsr173_api</groupId>
        </exclusion>
    </exclusions>
</dependency>

然后我在刷新eclipse项目之前运行,甚至从eclipse内部进行操作,但错误仍然存在。mvn clean installmaven..update project

注意:在中搜索字符串没有产生任何结果,所以我尝试了下一个更高的级别。infosetpomjar


答案 1

我遇到了同样的问题,并且能够通过执行以下操作来解决它:

  1. 右键单击包含错误的文件的模块。
  2. 点击“属性”
  3. 从左侧选择“Java 构建路径”
  4. 现在在右侧,选择“订单和导出”选项卡
  5. 单击“JRE系统库”,然后单击“向上”按钮将其移动到“Maven依赖项”的顶部

答案 2

要解决此问题,请打开项目的“构建路径”菜单,切换到“排序和导出”选项卡,并确保 Java 系统库位于列表顶部,而不是 Maven 依赖项。


推荐