Eclipse M2E / 改变顺序和导出

4
我正在使用Eclipse(Indigo)中的maven项目。为了编译一些需要支持库(webservices-api.jar)的类,我会进入“属性/Java Build Path/Order and Export”并将“Maven Dependecies”移动到“JRE System Library”之前。
问题在于,每当我点击“Maven/Update Project configuration”选项时,条目都会重新排列,“JRE System Library”始终是第一个条目,代码无法编译。
有没有办法让M2E记住我的选择并停止重新排列库?
提前感谢。
2个回答

1

我了解 webservices-api.jar 覆盖了标准 JRE 中的一些类,对吗?

我唯一看到的解决方法是将该 jar 文件移动到 JRE\lib\ext 目录下,并在 Maven 中将其标记为 system 依赖项。这不是一个好的解决方案,因为 Maven 将停止将此构件打包到您的目标中,而且您需要自己处理它。这有可能会起作用 - 但请注意,我没有尝试过,所以我不确定是否能够正确地覆盖您的 JRE libs。

至于 m2e,它接管了您的 Eclipse 项目设置,因此手动调整只要不更新配置就可以。


1
我不希望开发人员必须修改他们的环境。从版本控制中检出的新副本应该可以直接运行。 - adrianboimvaser

1
我最终实现的解决方案是使用一个Ant目标在.classpath文件中进行替换,以交换类路径容器。我向我的项目添加了一个Ant构建器来调用该目标,然后在Java编译器之前刷新项目。有点复杂,但它非常有效。

1
M2E的下一个版本(1.1)将保留自定义类路径条目。 - adrianboimvaser
这对我来说似乎很有趣。有一些实现的提示吗?我在@XmlElement上有同样的问题。我必须使用Java 6,并且此注释的目标是METHOD和TYPE,而在JAXB中它是FIELD、METHOD、PARAMETER。 - Betlista

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接