我应该如何使用Maven和Intellij构建一个多组件Java项目?

时间:2013-01-28 17:29:27

标签: java maven

我的java se项目/系统由下面的多个组件组成,其中可以有许多共享库和许多应用程序/运行进程。示例下面的3个组件组成'System 1'。

系统1: 1. Common lib - 用于我们的共享代码 2.应用程序1 - 一个应用程序/进程,它自己的代码引用了公共库。 3.应用程序2 - 一个应用程序/进程,它自己的代码引用了公共库。

我的问题是如何设置Maven / Intelij来支持这种结构......这是一个很好的结构吗?

目前我将groupId作为'com.MyCompany.System1',并将具有artifactIds的组件的Mavan模块作为'com-MyCompany-System1-common'等​​。

这是正确的方法吗?我应该如何安排Maven来支持这种结构?

提前致谢。

1 个答案:

答案 0 :(得分:3)

听起来像典型的Maven multi-module setup应该满足您的需求。至于IntelliJ,只需在Maven中设置它,然后将maven pom导入IntelliJ。它会起作用。您可以将pom文件作为项目打开,IntelliJ将为您正确设置所有内容。

建议:

  1. 即使事先感觉更多工作,你就越能将项目分解为清晰定义的模块,你最终会更快乐。
  2. 我不会在artifactId中重复groupId。 artifactId绝对应该是不同的,但不是 distinct。
  3. 如果是选项,请考虑使用Gradle。这是Maven之后构建工具的下一个合乎逻辑的步骤,随着模块数量的增加,它将大大减少您的工作量。 Gradle / IntelliJ交互几乎和Maven / IntelliJ一样好。这稍微多一些工作,但权衡是值得的。
  4. 来源:我有> 100 Maven和Gradle模块的混合,分布在> 30源代码回购中,我用IntelliJ工作了3年。