Java 在eclipse中,maven依赖项覆盖了项目依赖项

Java 在eclipse中,maven依赖项覆盖了项目依赖项,java,eclipse,maven,Java,Eclipse,Maven,我有一个使用几个“模块”的“主项目”。模块在pom.xml中,但我也有Eclipse中作为项目的模块代码。我在“属性|项目引用”和“属性| Java构建路径”中将模块定义为项目依赖项。我还确保所有Eclipse项目都位于Java构建路径中“订单和导出”的顶部 主项目无法识别eclipse中模块的更改。当我按F3键查看代码时,它会从我的.m2目录打开java源代码。它显然忽略了我的Eclipse项目。我是不是错过了一些场景?我该怎么办?如果您使用的是Maven,那么您很想向Maven承诺。即使您使

我有一个使用几个“模块”的“主项目”。模块在pom.xml中,但我也有Eclipse中作为项目的模块代码。我在“属性|项目引用”和“属性| Java构建路径”中将模块定义为项目依赖项。我还确保所有Eclipse项目都位于Java构建路径中“订单和导出”的顶部


主项目无法识别eclipse中模块的更改。当我按F3键查看代码时,它会从我的.m2目录打开java源代码。它显然忽略了我的Eclipse项目。我是不是错过了一些场景?我该怎么办?

如果您使用的是Maven,那么您很想向Maven承诺。即使您使用特定于Eclipse的依赖项配置Eclipse,只要您使用Maven更新项目配置,它都会完全重写您的配置

我强烈建议将任何其他项目构建依赖项转换为支持Maven的项目,这些项目可以用作Maven依赖项


在您的特定情况下(通过使用Maven模块),这意味着确保将每个模块作为支持m2e的项目导入Eclipse。然后,m2e将自动连接模块和其他依赖项目之间的依赖关系。

您不需要将依赖项目添加到项目引用中(至少在使用m2eclipse插件时),只需将它们作为依赖关系添加到masters的pom.xml上即可。自从我开始在Eclipse中使用Maven以来,我就没有必要去接触构建路径


通过右键单击project root->Maven->Enable Workspace resolution,确保已启用插件的工作区解析。如果显示“禁用工作区解析”,则该选项已启用。您可能还需要在同一菜单下运行“更新项目配置”


这样,当您从Eclipse中运行主项目时,对其他项目所做的任何更改都将对主项目“可见”(并且您实际上可以在运行时甚至对其他项目使用热插拔)。

我不明白为什么您需要将模块定义为顶级项目的依赖项。您是否试图避免在模块级别定义(交叉)依赖项?在任何情况下,根据其他建议,首先将依赖项放在POM的正确位置,然后运行

mvn eclipse:clean eclipse:eclipse

要更新Eclipse设置,或者更好,请确保已安装并将maven项目直接导入IDE。

当前插件名为“m2e”,可从默认更新站点获得。m2e是上次我查看Sonatype网站时m2eclipse的缩写。它不再是Sonatype项目,现在它是一个Eclipse项目:“Sonatype已经完成了M2Eclipse项目到Eclipse的转换。请转到这个URL获取M2E信息:”这意味着您必须在安装对话框中搜索“M2E”而不是“M2Eclipse”,并且您不必再指定自定义更新站点。您在我包含的Sonatype M2Eclipse链接上读到了吗。您是否注意到链接页面顶部的M2Eclipse徽标?这些都是非常有价值的评论!奇怪的是,启用和禁用工作区解析都在主项目的菜单上。我单击了enable,它重建了,但现在破坏了eclipse中实际存在但不在maven中的一些类。我觉得有些东西真的坏了。还有什么提示吗?首先尝试清理整个工作区。如果这没有帮助,与其猜测不同项目配置中可能出现的错误,不如建议如下:从文件->切换工作区->其他创建新工作区,必要时复制设置,然后使用文件->导入…->将所有项目导入新工作区Maven->现有Maven项目。选择“浏览”并导航到旧工作区的根目录,然后单击“确定”。选择所有POM并单击Finish。现在你有了一个包含所有项目的“干净”的工作空间,希望工作空间的分辨率能够开箱即用。这是一个好主意,但没有成功。主项目与模块位于不同的目录中。您认为这会导致中断吗?可能是Eclipse仍在从项目目录(.Project file、.settings目录)读取项目设置。您可以尝试将除.project文件和.settings目录之外的所有项目目录复制到单个目录,然后从其中导入。那样的话,你还可以保留原稿,以防出现问题。我尝试将所有项目从一个包含多个依赖maven项目的工作区复制到一个新的空工作区,然后导入,至少它可以处理这些项目(依赖项也在新工作区中解决)。右键单击project root->Maven->Enable Workspace resolution,确保已启用插件的工作区解析。这对我有用。