我有一个Maven项目,我在Eclipse中编程。在Eclipse中,一切正常,但是当使用Maven构建它时,我在调用第三方jar时得到NoSuchMethodError。所以我怀疑Eclipse在编译时会使用不同版本的jar。我可以看到Maven使用的版本,但我想看看 Eclipse 使用的版本。我没有看到如何在Eclipse中执行“mvn dependency:tree”,这样我就会看到结果形式为“Eclipse的观点”。
该项目是使用“文件/导入... /现有Maven项目”创建的。
我正在使用“Eclipse IDE for Java Developers”,版本:“Kepler Service Release 1”
要从Eclipse执行任何 Maven命令,我刚刚找到this SO question
答案 0 :(得分:11)
打开您想要了解的pom.xml。这是一个多窗格编辑器。其中一个窗格显示了依赖关系及其解析方式。
答案 1 :(得分:3)
确保安装了m2e(以前称为m2eclipse)插件。 如果Eclipse以纯文本形式打开pom.xml,则单击pom.xml并单击鼠标右键以显示弹出菜单。你会看到“打开方式” - > “Maven POM编辑”。 在Maven Pom Editor中,您可以在“依赖关系”或“依赖关系层次结构”中检查这些依赖关系。
答案 2 :(得分:0)
检查您的.classpath文件,并修改在“ classpathentry”下添加“ attributes”的属性,以在构建路径中使用maven依赖项。
以下是.classpath的示例
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
答案 3 :(得分:0)