【问题标题】:Eclipse can't resolve transitive dependency projects?Eclipse 无法解析传递依赖项目?
【发布时间】:2012-04-09 18:41:59
【问题描述】:

在 Eclipse 的一个 Java 项目中,我正在尝试调试项目 A。

项目A 依赖于B.jar,通常B.jar 来自我的.m2/repository。 但现在我想对B 的代码进行一些临时更改,并将其反映在A 中, 所以我直接在eclipse中编辑B项目中的源代码,并在A的构建路径中将B设置为依赖项目。此外,AB 都将 C.jar 作为它们的依赖项。

这可以很好地构建 A,但是当它运行时,Aclasspath 包含 C.jar 中所有类和资源的 2 个副本。这给C.jar 中的那些休眠hbm.xml 映射文件带来了问题,我收到错误消息duplicate mapping for...

这看起来是 eclipse 的一个缺陷,因为它缺乏 maven 拥有的解析能力。有没有办法解决这个问题? (除了构建 B 并安装到 .m2 而不是将其作为依赖项目)

谢谢

【问题讨论】:

    标签: eclipse maven compilation compiler-errors


    【解决方案1】:

    您提到“[setting] B 作为 A 的构建路径中的依赖项目”-您的意思是编辑 eclipse 的构建路径还是编辑项目的 POM?我猜是前者,在这种情况下,请确保您安装了最新版本的 m2eclipse 插件,并且两个项目 AB 都是 Maven eclipse 项目。如果设置正确,那么您的项目应该在其项目图标上看起来有一个“M”,并且任何工作区依赖项的图标应该看起来像文件夹。

    【讨论】:

    • 谢谢,我的意思是前者(编辑 Eclipse 构建路径)。我从 m2eclipse 开始,但失败了,并认为这可能是原因,但尝试了没有 m2eclipse 的普通 eclipse,仍然失败。让我尝试更新 m2eclipse
    • hmmm 似乎不起作用,更新为'M2E - Eclipse 的 Maven 集成(孵化)0.13.0.201105261543 org.eclipse.m2e.feature.feature.group' 仍然是同样的问题
    • 您是否确保 eclipse 将它们识别为 Maven 项目?如果还没有,请右键单击包资源管理器窗格中的项目图标,然后选择“配置”->“转换为 Maven 项目”。最好在这样做之前备份这些项目和/或在源代码管理中标记它们,因为如果出错就很难逆转。您可能想通过 'New' -> 'Project...' -> 'Maven' -> 'Maven Project' 创建几个 Maven 项目,并在其 POM 中引用另一个 - 这样你就可以看到它一切正常时的样子。
    • 是的,我确实确保它们是 maven 项目。 “Maven”-->“禁用 Maven 自然”,然后再次“配置”--> 转换为 Maven 项目。非常感谢
    • 项目 C 也是 Maven 项目吗?如果是这样,A & B 的 POM 中 C 的依赖声明是否指定相同的版本?我能想到在构建中最终得到该 jar 的 2 个副本的唯一方法是,如果 A 和 B 使用不同版本的 C。
    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多