我们有一个包含多个模块的java项目。我们使用git进行版本控制,并希望开发人员能够选择自己的IDE。所以我们不要用git推送.idea和.iml文件。这意味着IntelliJ中的开发人员需要从git克隆的人也需要在IntelliJ中设置项目。但是,我们在设置时遇到了一些问题。在我自己的项目中它工作正常,看起来像:
Proejct Module (Is this a real module?)
⤷ Module A
⤷ src
⤷ main
⤷ java
⤷ Package 1
⤷ Package 2
⤷ test
⤷ Module B
在我们向项目添加软件包之前,新开发人员可以从git中取出并在IntelliJ中打开 Module P ,然后从模块A 转到项目结构和导入模块模块B 。但是,如果他们尝试相同的事情,IntelliJ会尝试从模块A 中创建模块主和测试。
我们暂时使用的解决方法是直接将模块A和B打开为单独的IntelliJ项目。如果我们这样做,IntelliJ不会尝试从 main 和 test 中创建模块。然而,这对我们来说非常不便。
我们如何解决这个问题?
答案 0 :(得分:1)
这是一个很好的方法来制作你的源控制系统"不可知的"关于IDE而不是检查.idea
,*.iml
以及来自其他IDE的等价物。
但是,您确实需要使用maven
或gradle
等构建控制系统。
在我的工作场所,我们将maven用于所有java项目。在根级别定义pom.xml
非常简单,它定义了您的模块以及许多其他内容。
将maven项目导入intellij时,会自动为您创建所有相关的IntelliJ模块。从本质上讲,您只需要导入pom.xml
,然后就可以了。
否则每次从git查看源代码时导入和创建模块都将是一场噩梦。 Maven并不完美,但我强烈推荐使用maven或gradle。
要从根pom.xml
定义多个模块,请创建如下部分:
<modules>
<module>module-A</module>
<module>module-B</module>
</modules>
然后,模块A和B中的pom.xml
应通过<parent>
标记定义引用根pom的部分。