我有在命令行中编译好的 maven java 项目,但是当我在 eclipse 中导入时,我收到关于 CollectionUtils 的编译错误。
org.apache.commons.collections.CollectionUtils
似乎该项目具有引用旧版本的 apache commons 集合的传递依赖项。如何准确跟踪错误?怎么修?谢谢。
我有在命令行中编译好的 maven java 项目,但是当我在 eclipse 中导入时,我收到关于 CollectionUtils 的编译错误。
org.apache.commons.collections.CollectionUtils
似乎该项目具有引用旧版本的 apache commons 集合的传递依赖项。如何准确跟踪错误?怎么修?谢谢。
mvn dependency:tree
也许你可以通过发出来找出你的 pom 中的哪个依赖项正在拉入旧版本的 Apache commons来追踪传递依赖项。
或者,在 Eclipse 中,当您打开 pom.xml 文件(安装了m2e插件)时,您应该会在编辑器底部看到Dependency Tree选项卡,如下所示:
在Search字段中,您可以键入 apache commons jar 的名称以找出将其拉入的依赖项。一旦添加了适当的排除添加,它应该都是桃色的。
问题
你是如何在eclipse中导入maven项目的。你做了一个mvn eclipse:eclipse
然后将它作为一个普通的eclipse项目导入吗?如果是这样,我建议安装 m2e 插件(上面链接),然后Import Existing Maven Project
在 eclipse 中使用导入 maven 项目。
在我看来.classpath
,Eclipse 中的类路径(文件)配置不正确。您可以使用Maven Eclipse Plugin让 Maven 为您配置它。只需从命令行执行以下命令:
mvn eclipse:eclipse
然后,Maven 将.classpath
使用 POM 中定义的所有依赖项(包括传递依赖项)正确填充文件。然后在 Eclipse 中刷新项目,所有的红十字都会消失(希望......)
如何准确跟踪错误?怎么修?
调用
mvn clean compile -e
它会给你错误堆栈跟踪,帮助你修复这个错误