maven - Maven 多模块项目版本控制的良好实践

标签 maven

我对在 Maven 多模块项目中处理模块版本控制的正确方法有点困惑。让我介绍一个假项目的结构来解释我的疑惑:

parent
- libs
  - lib1
  - lib2
- batches
  - batch1
  - batch2

再加上 批处理1 依赖于 lib1 , 和 批处理2 lib2 .所有这些模块都在版本 1.0.0 中。我正在开发一个新的 1.0.1 版本。此版本中唯一需要更改的模块是 lib1 . 批处理1 直到版本 1.0.2 才需要实现这些更改。

问题是:哪些模块应该移动到版本 1.0.1-快照 ?

我的回答是: lib1 , 家长 .这些是唯一实际更改的模块(如果我们认为父模块“包含”其子模块的代码)但某些模块将仍然是过时的父 1.0.0 的子模块,这听起来不对。

你会推荐什么?

最佳答案

这没有全局标准,这完全取决于您的要求。

因此,如果您有 100 个模块,那么您不会在每次发布时都发布所有模块,这意味着组件将在不同的版本上。

但是如果你有一个小集合,那么即使它们没有变化,你也可以随时将组件升级到新版本。在这种情况下,您可以只使用父 pom 版本来管理版本。

编辑:

正如 OP 所提到的,他有数百个模块,在这种情况下,每个模块都应该在其 pom.xml 中有自己的版本。始终将它们保持在同一版本是不可行的。许多组织和项目都遵循这一点。

关于maven - Maven 多模块项目版本控制的良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28850160/

相关文章:

java - 如何在使用不同 Java 版本的 POM 中拥有额外的编译目标?

java - 包cucumber.api.java.en 不存在cucumber

java - Liquibase - 从数据库更改更新更改日志 XML 文件

java - Spark和MongoDB应用程序在Scala 2.10 maven构建错误

java - Nexus Ivy Maven : Second Level Dependencies Ignores Transitive

java - 如何确定依赖关系

Maven 发布插件 - svn : E200007: Source and destination URLs appear not to point to the same repository

java - 为什么 Maven 不从测试类生成源代码?

java - BIM服务器错误

spring-boot - 无法对 spring 微服务多模块应用程序进行 dockerize