1

我有在命令行中编译好的 maven java 项目,但是当我在 eclipse 中导入时,我收到关于 CollectionUtils 的编译错误。

org.apache.commons.collections.CollectionUtils

似乎该项目具有引用旧版本的 apache commons 集合的传递依赖项。如何准确跟踪错误?怎么修?谢谢。

4

3 回答 3

2

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 项目。

于 2012-08-09T17:41:40.600 回答
1

在我看来.classpath,Eclipse 中的类路径(文件)配置不正确。您可以使用Maven Eclipse Plugin让 Maven 为您配置它。只需从命令行执行以下命令:

mvn eclipse:eclipse

然后,Maven 将.classpath使用 POM 中定义的所有依赖项(包括传递依赖项)正确填充文件。然后在 Eclipse 中刷新项目,所有的红十字都会消失(希望......)

于 2012-08-09T11:18:30.350 回答
0

如何准确跟踪错误?怎么修?

调用

mvn clean compile -e

它会给你错误堆栈跟踪,帮助你修复这个错误

于 2012-08-09T09:20:46.533 回答