背景
- 标准 svn 布局中的一个主干和一个分支,
/trunk
和/branches/prod
- maven项目中约20个模块
- 当我想编译 trunk 时,只需输入
cd trunk; mvn clean package
。但它会编译每个模块。当需要构建产品时,类似的事情。 - 中心 Maven 存储库
问题
- 是否可以仅编译更新的模块?实际上我只想在可能的情况下编译修改后的源文件。我知道这很简单
ant
或make
。然而,maven compile
始终从头开始。 - trunk和prod中的pom.xml应该保持相同的artifactId和版本吗?相同的artifactId和版本不能与maven:deploy一起使用,因为trunk和prod会覆盖彼此部署的包。
最佳答案
您可以尝试使用 mvn -am -pl 选项,该选项会将操作限制为给定模块。
+-- root (pom.xml)
+-- client (pom.xml) dep: core
+-- server (pom.xml) dep: client
+-- core (pom.xml)
+-- cli (pom.xml) dep:core
如果你做了
mvn -am -pl server LifeCycle
只有服务器模块和服务器使用的模块才会在适当的生命周期中运行。
mvn -am -pl cli LifeCycle
在这种情况下,只有 cli 模块和核心模块将在给定的生命周期中运行。
关于java - 多svn分支中多模块maven项目的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10614166/