在Eclipse中执行"mvn dependency:tree"

15

我有一个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命令,我只找到了这个Stack Overflow问题

4个回答

19

打开你想要了解的pom.xml文件。这是一个多窗格编辑器。其中一个窗格显示了依赖项以及它们的解析方式。


由于某些原因,Eclipse 中的 POM 文件默认在一些“纯文本”编辑器中打开,因此我忘记了这个附加功能。 - Sebastien Diot
那么您已经改变了默认行为。 - Thorbjørn Ravn Andersen
未来读者注意:在“大纲”窗口中有一个完全独立的表示形式。这只是以整洁的方式显示了pom文件中的内容。您通常要查找的是主窗口中的“依赖项”或“依赖层次结构”选项卡。 - Frank Hopkins

8

确保您已安装m2e(以前称为m2eclipse)插件。 如果Eclipse将pom.xml作为纯文本打开,则单击pom.xml并单击鼠标右键以显示弹出菜单。 您将看到“打开方式” -> “Maven POM编辑器”。 在Maven Pom Editor中,您可以在“依赖项”或“依赖项层次结构”中检查这些依赖项。


5
如下所示,打开pom.xml文件并在“依赖层次结构”选项卡上查看。

maven pom dependency hierrchy


1

请检查您的.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>

嗨。我很久之前就提出了这个问题。我们已经配置了“maven.pomderived”,不再有那个问题,所以我无法判断你的答案是否有用。 - Sebastien Diot

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