在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>
因此,同一个文件显示两次。显然,第一个搜索结果是reduntant。有没有办法排除这些重复的搜索结果?
答案 0 :(得分:37)
我个人为避免这种情况而做的是将父项目中的每个模块标记为派生(右键单击文件夹&gt; properties&gt; Attributes:Derived)。
然后,当您执行文件搜索时,取消选中“考虑派生资源”(我认为默认情况下不会选中),您将无法获得A/B/<my_file>
。
唯一的不便是您必须为每个模块执行此操作,并且每次添加新模块时都会这样做。
答案 1 :(得分:12)
检查窗口 - &gt;偏好 - &gt; Maven - &gt; 隐藏物理嵌套模块的文件夹(实验性的) 在 Mars.1发布(4.5.1)中为我工作。
检查后,我关闭了eclipse中的所有项目,删除了eclipse项目文件( .project,.classpath 和 .settings )并重新导入了我的maven项目。
答案 2 :(得分:7)
在打开的资源窗口(cntrl + shift + R)中,单击右上角的箭头并选中“过滤重复资源”。这对我有用。
答案 3 :(得分:4)
Windows - 首选项 - Maven - 隐藏物理嵌套模块的文件夹
答案 4 :(得分:2)
我同意Damon Horrell的观点。 转到Windows - 首选项 - Maven - 隐藏物理嵌套模块的文件夹(确保选中该复选框)。
注意:确保将maven项目重新导入到eclipse中以查看更改。
答案 5 :(得分:2)
答案 6 :(得分:1)
有一个古老的bug which requests Eclipse to support nested projects。我想,2008年开业,不会很快发生。
由于Eclipse不支持Maven的默认嵌套模块布局,因此您必须单独导入每个模块,这不会混淆Eclipse,但它可能会让您感到困惑,因为您可以在搜索结果中看到。当您开始在模块中保存启动配置时,会发生类似的事情。
有几种可能的解决方案:
习惯忽略搜索结果的一半。需要一些纪律,但没有魔力。
确保您的根项目不包含您可能希望从Eclipse打开的任何重要项目(即将父POM移动到必须是根项目的子项的新模块)。现在您可以关闭根项目。
在你的项目中放置一些东西需要一些纪律,当你必须添加新模块时,它会很笨拙。
使用flat multi-module approach。这是对#2的扩展,它看起来很奇怪,并且可能是被冒犯的插件。因此,如果您使用大量非标准插件,则应检查他们是否喜欢新布局。
答案 7 :(得分:1)
在父项目中,孩子们已经在视觉上隐藏在我的案例中,但仍然可以通过搜索和 Ctrl - 点击链接找到。
我使用资源过滤器:
解决了这个问题答案 8 :(得分:0)
您可以使用flat multi-module approach解决此问题。
如果您将maven-release-plugin与Subversion之外的版本控制系统一起使用,则可以应用警告。
答案 9 :(得分:0)
作为一个新的木匠,仍然无法发表评论,但我真的想补充一些最佳答案。有用!它不仅为我删除了重复文件(一个来自子模块,一个来自父模块),它还从父模块中删除了类文件。)
但它将文件夹添加到我的.gitignore中,这会导致以后添加的新文件/目录出现问题。我只是将更改恢复为.gitignore,它仍然适用于eclipse。
找到此答案以禁用.gitignore的自动更改 EGit and Eclipse modifies .gitignore file but it should not
答案 10 :(得分:0)