【问题标题】:Eclipse Dependency is not in pom.xml but still under "Maven Dependencies" groupEclipse Dependency 不在 pom.xml 中,但仍在“Maven Dependencies”组下
【发布时间】:2015-03-05 02:40:00
【问题描述】:

我使用 Maven 在 Eclipse 中的 Java 项目中添加了一个依赖项。我从存储库添加了一个版本的依赖项,然后我发现该版本不是我想要的,然后使用 maven 的命令手动添加了更高版本(存储库中不存在)。最后我从 pom.xml 中删除了旧版本,并将新版本添加到那里。我使用以下命令将更新版本添加到 repo:

mvn install:install-file -Dfile=PATH_OF_JAR -DgroupId=GROUP_ID -DartifactId=ARTIFACT_ID -Dversion=VERSION -Dpackaging=jar

现在的问题是旧版本仍保留在“Maven 依赖项”组中。我使用该依赖项 jar 的代码部分将看不到新版本。我从 Maven 本地 repo 中手动删除了旧版本,并执行了 Maven 的“purge”命令。每次我更新,旧版本都会回来。如何让我的项目只看到新版本并完全摆脱旧版本?

pom.xml 条目如下(指向新版本,我想要的版本):

<dependency>
        <groupId>org.eclipse.jface</groupId>
        <artifactId>org.eclipse.jface</artifactId>
        <version>3.7.0</version>
    </dependency>

【问题讨论】:

  • 当您使用 maven 的命令手动添加更高版本(存储库中不存在)时,您到底做了什么。?如果您没有将新版本安装到存储库中,Maven 将回退到旧版本。如果您将版本号放在诸如&lt;version&gt;[1.2.3]&lt;/version] 之类的中断中,您甚至可以“强制”使用新版本。
  • 请向我们展示您的 pom.xml 文件和依赖项
  • 我添加了 pom.xml 条目,请检查。
  • artifactId 定义是否正确?你在 Eclipse 中是否有一些 pom.xml 的错误标记?
  • 如果您使用 Eclipse,请查看 pom.xml 查看器的“依赖层次结构”选项卡。单击已解决的依赖项选项卡上的 org.eclipse.jface 并查看它的来源(可能您的版本被传递依赖项推翻)。

标签: java eclipse maven dependencies


【解决方案1】:

听起来像另一个依赖项正在引入它......做一个maven依赖树来解决你的冲突。 See apache's guide here

mvn dependency:tree -Dverbose -Dincludes=YOUR_OLD_DEPENDENCY

您也可以使用 IDE 等工具来辅助此操作

Intelli-j

  • 右键>Maven -->显示依赖
  • 快捷键:ctrl + alt + shift + u

日食

  • 点击下面@FrVaBe 建议的 pom 的“依赖层次结构”选项卡

【讨论】:

  • 不错的答案。到目前为止还不知道includes 属性。
【解决方案2】:

如果您使用 eclipse,请查看 pom.xml 查看器的“Dependency Hierarchy”选项卡。单击已解析依赖项选项卡上的 org.eclipse.jface 工件,查看它的来源(可能您的版本被传递依赖项推翻)。

这个答案与@MMans 的答案非常相似(为此+1)——只是使用其他可能比命令行更容易使用的工具(对于某些人来说);-)

【讨论】:

    猜你喜欢
    • 2017-09-07
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2017-09-29
    相关资源
    最近更新 更多