我希望这是开始讨论的正确地点和正确的讨论。
我想要什么
我正在寻找一种好的/正确的方法来处理多个 maven 项目,这些项目共享一个公共(public)配置,就我而言就是这种情况
- 使用源/目标编译版本设置 maven-compiler-plugin 版本
- 设置 maven-source-plugin 以将源附加到 Artifact
- 定义本地存储库服务器
- 定义通用依赖项(通过 dependencyManagement 和 dependencies)。
我做了什么
我的第一个方法是创建一个多模块项目。但由于模块实际上是独立的,因此在发布时(因此发布周期不同),它似乎更像是一种负担。我也未能做到我可以独立使用 IntelliJ 中的子模块,并且每个子模块都有自己的 Jenkins 工作。对我来说,这总是全有或全无
第二种方法是有单独的项目。这使得 IntelliJ 中的编码变得简单,并且 Jenkins 可以为每个项目分配作业。
但是现在对父 pom 的更改会影响子项,委托(delegate)是乏味的,因为所有其他项目都必须适应对新父项的更改。
这是可行的,可能是解决这个问题的方法,但我担心我在这里误用了父概念,我想知道是否有更好的方法在多个 Maven 项目中使用公共(public)设置?
感谢阅读,我希望这是可以理解的
最佳答案
您可以使用 <scope>import</scope>
重新使用来自不同 pom 的依赖项管理部分, 描述 here ,但这仅适用于依赖项,您不能对属性、存储库等执行此操作。
恐怕没有比 parent-pom.xml 更好的方法来解决您的问题了。实际上,这是被广泛采用的方法。 Spring boot ,例如,已经使用了很长时间。
您要做的一件事是对该父 pom 进行良好的发布管理。确保您不依赖于 SNAPSHOT
不阻止现有项目的版本。
关于java - maven项目中如何定义常用配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54142821/