IntelliJ多项目

时间:2014-08-02 00:21:14

标签: intellij-idea

转向intellij我试图正确理解其项目结构背后的逻辑。我来自日食。阅读了一段时间后,我理解了工作空间和项目之间的关系,然后是项目和模块之间的关系。然而令我困惑的是Intellij中默认项目配置的逻辑。实际上,当你创建一个项目时,有一个初始模块,它在某种程度上等同于项目本身。更准确地说,初始模块文件夹是Project文件夹。这让我很困惑。然后,当您添加更多模块时,它们是该模块的子模块。

我的第一个问题是,使第一个模块等同于项目文件夹的理由是什么?

在此之后,我会进一步询问,将模块作为其他模块的重点是什么。 在eclipse中,我使用简单的不同项目(即模块)彼此独立并根据需要添加依赖项。那么Idea解决方案如何让它变得更好,如果不是理性的话呢?

我看到一个人可以启动一个空项目然后添加模块。但是在这种情况下,添加的模块被添加为项目的子文件夹,因此没有与Project文件夹等效的初始模块?那么为什么这种差异以及它背后的基本原理是什么呢?

什么是更好的方法,第一个还是第二个?

没有src或测试文件夹的第一个初始模块是否可以,但是只需要正确的方面,以便将其传播到子模块?

如果有人能解释一下所有这一切的理性,我将不胜感激?

我很快就会转向SBT(即我认为maven结构启发了所有现代IDE项目结构),如果想要在该环境中进行解释,那么我想首先理解intelliJ的基本原理。

非常感谢,

-M -

PS:我正在寻找的是Intellij中一些多模块项目结构的建议,因为我正在将我的eclipse工作区移动到它。

1 个答案:

答案 0 :(得分:1)

我认为项目相对较小并不罕见,因此他们不需要具有依赖管理等的花哨模块。在这种情况下,我发现IntelliJ创建的默认项目完全适合我的需求:无需添加子模块,一切都直接在父项目中,它将结构简化为最低限度。

另一方面,带有子模块的大项目很可能类似于Maven多模块项目的结构(也许是SBT,但我根本不知道这个工具)。您有一个父根,它充当子模块的容器。父项目还可以存储配置(子模块将继承的默认SDK,语言级别等)。实际代码将包含在子模块中。

关于您的问题,这完全取决于您正在开发的项目类型。对于小代码库,您可以保留一个没有子模块的简单项目。对于更大的代码库,您可以手动创建模块,也可以导入现有的Maven / SBT /任何项目,这将自动创建反映导入结构的模块。

相关问题