1

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

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

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

目前,我的 groupId 为“com.MyCompany.System1”,组件的 Mavan 模块为 artifactIds 为“com-MyCompany-System1-common”等。

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

提前致谢。

4

1 回答 1

3

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

建议:

  1. 即使感觉需要更多的前期工作,您越能将项目分解为明确定义的模块,最终您会越快乐。
  2. 我不会在 artifactId 中重复 groupId。artifactId 绝对应该是不同的,但不是那么不同。
  3. 如果可以选择,请考虑使用Gradle 。这是继 Maven 之后构建工具的下一个合乎逻辑的步骤,随着模块数量的增加,它将大大减少您的工作量。Gradle/IntelliJ 交互几乎和 Maven/IntelliJ 一样好。工作量稍大一些,但权衡是值得的。

资料来源:我拥有超过 100 个 Maven 和 Gradle 模块,分布在超过 30 个源代码存储库中,我已经使用 IntelliJ 构建和工作了 3 年。

于 2013-01-28T17:40:27.153 回答