【问题标题】:Perform "mvn dependency:tree" *within Eclipse*在 Eclipse 中执行“mvn 依赖:树”*
【发布时间】:2014-02-22 09:35:26
【问题描述】:

我有一个在 Eclipse 中编程的 Maven 项目。在 Eclipse 中,一切正常,但是在使用 Maven 构建它时,我在调用第三方 jar 时收到 NoSuchMethodError。所以我怀疑Eclipse在编译时使用了不同版本的jar。我可以看到 Maven 使用哪个版本,但我想看看 Eclipse 使用哪个版本。我看不到如何在 Eclipse 中执行“mvn 依赖:树”,这样我会看到“Eclipse 的观点”的结果。

项目是使用“文件/导入.../现有 Maven 项目”创建的。

我正在使用“Eclipse IDE for Java Developers”,版本:“Kepler Service Release 1”

要从 Eclipse 执行 any Maven 命令,我刚刚找到了this SO question

【问题讨论】:

    标签: java eclipse maven


    【解决方案1】:

    打开你想了解的 pom.xml。这是一个多窗格编辑器。其中一个窗格显示了依赖关系以及它们是如何解决的。

    【讨论】:

    • 出于某种原因,POM 默认在 Eclipse 的一些“纯”文本编辑器中打开,所以我忘记了添加的功能。
    • 那么你已经改变了默认行为。
    • 未来读者请注意:“大纲”窗口中直接打开了一个完全独立的表示。这只会以简洁的方式显示 pom 中的内容。您通常要查找的是主窗口中的“依赖项”或“依赖项层次结构”选项卡。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如下图,打开 pom.xml 并在“Dependency Hirarchy”选项卡上

      【讨论】:

        【解决方案4】:

        检查您的 .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”,不再有这个问题,所以我无法判断你的答案是否有用。
        猜你喜欢
        • 2012-03-02
        • 1970-01-01
        • 2019-09-07
        • 2015-12-27
        • 1970-01-01
        • 1970-01-01
        • 2015-05-04
        • 2013-11-05
        • 1970-01-01
        相关资源
        最近更新 更多