有一个大型 Maven 项目,有几十个 jar 和一场战争。 每个 jar 代表一个专门团队负责的重要功能。 比方说,“库存”jar 包含支持我们产品中该功能的必要功能,并且有一个专门的团队“库存”团队正在研究它。
由于大约有 50 个这样的函数/团队/jar - 我们希望尝试进一步将它们彼此隔离,并将每个 jar 保存在自己的 git 存储库中。但那又如何
是否有任何建议如何使用 Maven 隔离团队并模拟“每个 jar 的存储库”(如微服务),并在 Hotswap、导航等支持下使用 Intellij 高效开发项目? 如果可能的话。也许这个问题也带来了如何有效开发库的理解。
我认为的默认行为是拥有一个带有根聚合器 maven 项目的单个存储库,其中包含所有必要的“子模块”以及通过依赖项对必要的 jar 进行引用的单个 war 模块。然后一切正常。 Intellij 完美支持热插拔、调试等。但是是否可以摆脱单一存储库并切换到每个 jar 的多存储库?
但是,如果我们想要一个只有“umbrella”maven war 项目的存储库,该项目引用所有 jar 作为依赖项,并在自己的 git 存储库中开发每个 jar - 那么没有简单的方法可以在支持 HotSwap 的 Intellij 中开发它,调试和重新加载资源等等(或者我不知道那样)。我们总是必须重建依赖jar以安装到本地mvn存储库以使其被war项目占用。我尝试导入 Intellij 模块,但在 Intellij tomcat 中部署 war 后,调试点指向库(只读)而不是我导入的模块 - 与典型的 maven 和 tomcat 应该工作相同。所以调试效率不高,我无法更改代码和热插拔等
IDEA 支持将 Maven 项目链接在一起(使用
Maven 工具窗口中的“
+
”按钮)。
如果您的子项目彼此直接依赖,i。 e. “Subproject1
”在其“pom.xml
”中有一个类似于下面的条目
<dependency>
<groupId>org.example</groupId>
<artifactId>Subproject2</artifactId>
<version>1.0</version>
</dependency>
IDEA 将解决它们,并允许您并行处理它们,而无需将 JAR 部署到 Maven 存储库。