java - maven项目中如何定义常用配置

标签 java maven

我希望这是开始讨论的正确地点和正确的讨论。

我想要什么

我正在寻找一种好的/正确的方法来处理多个 maven 项目,这些项目共享一个公共(public)配置,就我而言就是这种情况

  1. 使用源/目标编译版本设置 maven-compiler-plugin 版本
  2. 设置 maven-source-plugin 以将源附加到 Artifact
  3. 定义本地存储库服务器
  4. 定义通用依赖项(通过 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/

相关文章:

java - JBoss 多个 SLF4J 绑定(bind)错误

java - List<String> 的 add 方法是否线程安全?

java - 在 ISO-8559-1 和 cp1251 之间转换

java - 处理多部分/表单数据请求时,Spring Boot 1.3.7 中的文件始终为空

java - 在提供 Maven Artifact 的 Wildfly 部署中使用 CXF 库

eclipse - 如何使用 Maven 和 Tomcat 在 Eclipse 中启动、调试和构建 Java Web 项目

maven 程序集在最终的 zip/tar 中包含当前项目 jar

java - 部署时错误(java.lang.NoClassDefFoundError : com/sun/net/ssl/internal/ssl/Provider ) in Jboss 7

java - 何时为小型应用程序使用 Hibernate 与 Simple ResultSets

java - Maven多模块项目报错