36

在 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>

所以,同一个文件会显示两次。显然,第一个搜索结果是多余的。有没有办法排除这些重复的搜索结果?

4

11 回答 11

44

我个人为避免这种情况所做的是将父项目中的每个模块标记为派生(右键单击文件夹> 属性> 属性:派生)。

然后当您执行文件搜索时,取消选中“考虑派生资源”(我认为默认情况下不会选中),您将不会获得A/B/<my_file>.

唯一的不便是您必须为每个模块执行此操作,并且每次添加新模块时。

于 2013-02-25T13:13:03.867 回答
20

在打开的资源窗口(cntrl+shift+R)中,单击右上角的箭头并选中“ Filter Duplicated Resources ”。这对我有用。

于 2017-05-03T04:49:08.447 回答
18

检查窗口 -> 首选项 -> Maven ->隐藏物理嵌套模块的文件夹(实验性)Mars.1 Release (4.5.1)中为我工作。

检查后我关闭了eclipse中的所有项目,删除了eclipse项目文件(.project、.classpath.settings)并重新导入了我的maven项目。

于 2016-01-03T03:24:23.213 回答
4

Windows - 首选项 - Maven - 隐藏物理嵌套模块的文件夹

于 2014-09-09T02:55:59.983 回答
4

我有类似的问题。

我对这个问题的解决方案是

  1. 创建要搜索的项目的eclipse“工作集”
  2. 将此工作集设置为搜索对话框中的选项
  3. 在里面搜索

    示例搜索对话框

于 2017-01-05T15:04:24.767 回答
2

我同意达蒙霍雷尔的观点。转到 Windows - 首选项 - Maven - 隐藏物理嵌套模块的文件夹(确保选中该复选框)。

注意:确保将 maven 项目重新导入 eclipse 以查看更改。

于 2015-03-11T18:50:28.610 回答
2

在父项目中,子项目在我的案例中已经在视觉上隐藏了,但仍然可以通过搜索和Ctrl单击链接找到。

我通过使用资源过滤器解决了这个问题:

  1. 右键单击(父)项目 >属性>资源>资源过滤器
  2. 点击Add Filter...,选择Apply to -> Folders并输入一个子项目的文件夹名称,点击OK
  3. 对所有子项目文件夹重复 2.

到最后,你应该有这样的东西:在此处输入图像描述

于 2017-08-31T06:56:53.410 回答
1

有一个古老的错误要求 Eclipse 支持嵌套项目。2008年开业,我猜不会很快发生。

由于 Eclipse 不支持 Maven 的默认嵌套模块布局,您必须单独导入每个模块,这不会让 Eclipse 感到困惑,但正如您在搜索结果中看到的那样,它会让您感到困惑。当您开始在模块中保存启动配置时,也会发生类似的事情。

有几种可能的解决方案:

  1. 习惯于忽略一半的搜索结果。需要一些纪律,但没有魔法。

  2. 确保您的根项目不包含您可能希望从 Eclipse 打开的任何重要内容(即将父 POM 移动到必须是根项目子项目的新模块)。现在您可以关闭根项目。

    在您的项目中放置东西时需要一些纪律,当您必须添加新模块时会很笨拙。

  3. 使用平面多模块方法。这是 #2 的扩展,它看起来很奇怪,并且可能有一些插件被它冒犯了。所以如果你使用了很多非标准的插件,你应该检查他们是否喜欢新的布局。

于 2013-02-25T13:04:53.337 回答
0

您可以使用平面多模块方法解决此问题。

如果您将 maven-release-plugin 与 Subversion 以外的版本控制系统一起使用,则可能需要注意事项。

于 2013-02-25T11:36:59.917 回答
0

作为一个新加入者,仍然无法发表评论,但我真的很想在最佳答案中添加一些内容。有用!它不仅为我删除了重复文件(一个来自子模块,一个来自父模块),它还从父模块中删除了类文件)。

但是它将文件夹添加到我的 .gitignore 中,这将导致以后添加的新文件/目录出现问题。我刚刚将更改恢复为 .gitignore ,它仍然在 Eclipse 中有效。

找到这个答案以禁用 .gitignore EGit 的自动更改和 Eclipse 修改 .gitignore 文件,但它不应该

于 2014-03-28T09:40:58.570 回答
0

除了提到的“隐藏物理嵌套模块的文件夹”之外,您可以在导入Maven项目 时取消选中父模块:在此处输入图像描述

于 2020-08-29T06:43:08.860 回答