在 Eclipse 中,我有两个 maven 项目 A 和 B,其中 A 是 B 的父项目。目录结构如下:
A/pom.xml
A/B/pom.xml
A/B/...
然后我使用文件搜索 (Ctrl+H) 在项目 B 中查找任何文件。搜索结果窗口以不同的相对路径显示该文件两次:
A/B/<my_file>
B/<my_file>
所以,同一个文件会显示两次。显然,第一个搜索结果是多余的。有没有办法排除这些重复的搜索结果?
我个人为避免这种情况所做的是将父项目中的每个模块标记为派生(右键单击文件夹> 属性> 属性:派生)。
然后当您执行文件搜索时,取消选中“考虑派生资源”(我认为默认情况下不会选中),您将不会获得A/B/<my_file>
.
唯一的不便是您必须为每个模块执行此操作,并且每次添加新模块时。
在打开的资源窗口(cntrl+shift+R)中,单击右上角的箭头并选中“ Filter Duplicated Resources ”。这对我有用。
检查窗口 -> 首选项 -> Maven ->隐藏物理嵌套模块的文件夹(实验性)在Mars.1 Release (4.5.1)中为我工作。
检查后我关闭了eclipse中的所有项目,删除了eclipse项目文件(.project、.classpath和.settings)并重新导入了我的maven项目。
Windows - 首选项 - Maven - 隐藏物理嵌套模块的文件夹
我同意达蒙霍雷尔的观点。转到 Windows - 首选项 - Maven - 隐藏物理嵌套模块的文件夹(确保选中该复选框)。
注意:确保将 maven 项目重新导入 eclipse 以查看更改。
有一个古老的错误要求 Eclipse 支持嵌套项目。2008年开业,我猜不会很快发生。
由于 Eclipse 不支持 Maven 的默认嵌套模块布局,您必须单独导入每个模块,这不会让 Eclipse 感到困惑,但正如您在搜索结果中看到的那样,它会让您感到困惑。当您开始在模块中保存启动配置时,也会发生类似的事情。
有几种可能的解决方案:
习惯于忽略一半的搜索结果。需要一些纪律,但没有魔法。
确保您的根项目不包含您可能希望从 Eclipse 打开的任何重要内容(即将父 POM 移动到必须是根项目子项目的新模块)。现在您可以关闭根项目。
在您的项目中放置东西时需要一些纪律,当您必须添加新模块时会很笨拙。
使用平面多模块方法。这是 #2 的扩展,它看起来很奇怪,并且可能有一些插件被它冒犯了。所以如果你使用了很多非标准的插件,你应该检查他们是否喜欢新的布局。
您可以使用平面多模块方法解决此问题。
如果您将 maven-release-plugin 与 Subversion 以外的版本控制系统一起使用,则可能需要注意事项。
作为一个新加入者,仍然无法发表评论,但我真的很想在最佳答案中添加一些内容。有用!它不仅为我删除了重复文件(一个来自子模块,一个来自父模块),它还从父模块中删除了类文件)。
但是它将文件夹添加到我的 .gitignore 中,这将导致以后添加的新文件/目录出现问题。我刚刚将更改恢复为 .gitignore ,它仍然在 Eclipse 中有效。
找到这个答案以禁用 .gitignore EGit 的自动更改和 Eclipse 修改 .gitignore 文件,但它不应该