我正在使用IntelliJ 13并使用基于maven项目的模块进行Java项目设置。
我必须重命名一个maven项目,因此我必须在pom文件中更改它的artifactId属性值。
如果我手动执行此操作,则必须手动查找所有出现的内容并手动修改(例如:它作为模块包含在哪里以及用作依赖项的位置)。
由于IntelliJ提供了许多重构技术,我认为将支持refactor->重命名pom artifactId属性,但它似乎不是。
我可以尝试做一个查找/替换..但这仍然让我做所有的工作逻辑(容易出错)。
IMO,IntelliJ应该能够检测到pom作为模块被包含在哪里以及哪些模块将其用作依赖项 - 任何人都知道这样做的自动方式 - 或者我在这里遗漏了什么?
答案 0 :(得分:12)
Replace in Path
(默认情况下为Ctrl + Shift + R)操作包含要查找<artifactId>OLD-ARTIFACT-ID</artifactId>
的文字和要替换<artifactId>NEW-ARTIFACT-ID</artifactId>
的文字,我们会自动执行大部分工作,并且误报率最低,尤其是如果您另外配置正确的文件名过滤器(pom.xml
,显然)。
详细信息,以下是重命名基于maven的模块的完整步骤序列(假设模块名称与模块所在目录的名称相匹配):
<module>OLD-ARTIFACT-ID</module>
行,然后允许IDEA重新导入项目并允许它从项目中删除已排除的模块。最好还删除剩余的.iml文件。<artifactId>OLD-ARTIFACT-ID</artifactId>
到<artifactId>NEW-ARTIFACT-ID</artifactId>
的搜索和替换,以重命名相关模块,并修复对其的所有依赖项引用。<module>OLD-ARTIFACT-ID</module>
到<module>NEW-ARTIFACT-ID</module>
的搜索和替换,以修复对其的所有聚合引用。<module>NEW-ARTIFACT-ID</module>
行,然后允许IDEA重新导入项目。如果您觉得IDEA遗漏了一些有用的功能,您应该在http://youtrack.jetbrains.com/创建功能请求。在这种特殊情况下,请投票选择IDEA-94223,IDEA-72181和IDEA-104344。