18

我目前正在 IntelliJIdea 12.1.6 Ultimate 中从事一个更大规模的基于 Maven 的项目。大约 5 个月以来,我一直在使用 IntelliJIdea。

包含的模块依赖于另一个模块。直到最近,依赖模块的源代码也是我项目的一部分。由于我从项目中删除了依赖模块,因此每当我尝试在没有 maven 的情况下编译源代码时都会出现编译错误。

Intellij 中已删除模块的 pom.xml 似乎放置在 Settings->Maven->Ignored Files 上。我似乎无法从那里删除它,只能选中或取消选中它。由于 IntelliJ 会说它仍在 Ignored Files 下,因此无法再次包含该模块。

有 2 种方法允许我再次编译:取消选中 Ignored 文件中的 pom,这将在我的项目中再次包含该模块。或者删除依赖模块的源,这样我的项目会从maven仓库加载依赖模块。但是每当我从 svn 更新我的项目时,依赖模块的源代码就会恢复(我不知道为什么会发生这种情况,因为它不是我的项目的一部分)并且循环重新开始。

我用谷歌搜索了一段时间,因为它真的很烦人。它成为几个排除模块的问题。我可以从头开始重建 intellij 项目,但由于进行了很多 IntelliJ 设置(与问题无关),我宁愿解决这个问题。

任何帮助表示赞赏,我想我一定错过了什么

4

3 回答 3

43

一位对maven有更深入了解的同事告诉我答案:

诀窍不是从 intellij 项目中删除源模块,而是从 maven 中删除它(在 intellij 的 maven 项目选项卡中)。然后 Intellij 将要求从 intellij 项目中删除源模块,并且它最终消失了。

右键单击maven项目->删除项目

不会想到这会产生如此大的不同。

于 2013-10-25T14:32:05.613 回答
2

这两点中的任何一个对您有用吗:

  • 您的一个子模块中可能存在指向已删除工件的依赖项。为确保是这种情况,您可能需要重命名 $HOME/.m2 并重建项目。如果确实如此,只需在 poms 中搜索依赖项并将其从子模块中删除
  • 右键单击父pom.xml级 -> Maven -> 重新导入
  • 将项目复制到单独的目录中。文件 -> 导入项目 -> 选择新创建的目录 -> 选择 Maven?

PS。Idea 非常擅长按照 Maven 项目维护项目结构。对 pom 进行更改后,您需要重新加载项目。Idea 还可以自动检测对您所做的更改pom.xml并将其应用于项目。要启用此功能,请按Ctrl+Shift+A,输入“maven auto”,选择“导入”,勾选“自动导入 Maven 项目”;

于 2013-10-24T14:32:37.593 回答
2

这可能与OP没有直接关系,但是......

使用IntelliJ 2016.5删除 Maven 模块及其底层源代码并将其作为子模块从父模块中删除,转到Project Files选项卡,找到不需要的模块并使用三角形符号将其打开,然后删除表示它在磁盘上。

点击Delete模块本身只会将其标记为隐藏在 IDE 中。

于 2016-10-20T10:04:56.253 回答