【问题标题】:Eclipse goes to maven local repo copy of a project, even though that project exists on the workspaceEclipse 转到项目的 maven 本地 repo 副本,即使该项目存在于工作区中
【发布时间】:2016-12-06 12:45:00
【问题描述】:

使用 M2Eclipse 插件。项目 A 依赖于项目 B。项目 B 存在于 maven 本地存储库和工作空间中。在调试时,Eclipse 会忽略工作区副本并转到项目 B 的 maven 本地存储库副本。

但奇怪的是,当我从项目 A 的 pom.xml 中删除项目 B 时,Eclipse 会转到工作区副本。

我试过了:

  • 禁用项目 A 的工作区分辨率并重新启用它。
  • 清洁安装项目 A 和项目 B。
  • 强制更新项目 A。

这些都不起作用。当我从项目 A 的 pom.xml 中删除项目 B 时,它可以工作。当我将项目 B 重新添加到项目 A 的 pom.xml 时,Eclipse 再次转到项目 B 的 maven 本地 repo 副本。但是从项目 A 的依赖列表中删除项目 B 显然不是要走的路。

有没有其他人观察到这种奇怪的行为?我应该怎么做才能阻止这种情况发生?

【问题讨论】:

    标签: java eclipse maven m2e


    【解决方案1】:

    在 Eclipse 中,您可以在依赖项目(项目 A)中添加指向您的工作区项目(项目 B)的链接,而不是 Maven 本地存储库中的链接。

    您必须在依赖项目(项目 A)上执行此操作: Right click > Build path > Configure Build path...Projects 选项卡中,添加您的工作区项目

    【讨论】:

    • 但是m2e不应该处理这个吗?
    • 是的,但有时,它只是无法正确执行。所以你必须手动完成
    • 我找到了。显然,有人将 Project B 对 Project A 的 pom.xml 的依赖版本从 TEST-SNAPSHOT 更改为 UAT-SNAPSHOT。由于我的工作空间上的项目 B 的版本是TEST-SNAPSHOT,Eclipse 自然认为这不是它要查找的版本,因此它会转到 maven 本地存储库。
    【解决方案2】:

    我找到了。显然,有人将 Project B 对 Project A 的 pom.xml 的依赖版本从 TEST-SNAPSHOT 更改为 UAT-SNAPSHOT。由于我的工作空间上的项目 B 的版本是TEST-SNAPSHOT,Eclipse 自然认为这不是它正在寻找的版本,因此它会转到 maven 本地存储库。

    换句话说,项目 A 的 pom.xml 是从这个改变的:

    ... 
    <dependency>
                <groupId>SomeGroupID</groupId>
                <artifactId>Project_B</artifactId>
                <version>TEST-SNAPSHOT</version>
    </dependency>
    ...
    

    到这里:

    ... 
    <dependency>
                <groupId>SomeGroupID</groupId>
                <artifactId>Project_B</artifactId>
                <version>UAT-SNAPSHOT</version>
    </dependency>
    ...
    

    这是我工作区中项目 B 的 pom.xml

    ...
    <groupId>SomeGroupID</groupId>
    <artifactId>Project_B</artifactId>
    <version>TEST-SNAPSHOT</version>
    ...
    

    由于项目 A 引用了项目 B 的 UAT-SNAPSHOT 版本(而不是 TEST-SNAPHOT 版本),Eclipse 自然认为我工作区中的项目 B 不是项目 A 正在寻找的项目。因此,Eclipse 会转到我的本地 maven 存储库。

    带回家的信息是,应该非常仔细地检查所引用的版本,以及您希望引用的项目版本是否完全匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多