java - 多svn分支中多模块maven项目的最佳实践是什么

标签 java svn maven-2 branch

背景

  1. 标准 svn 布局中的一个主干和一个分支,/trunk/branches/prod
  2. maven项目中约20个模块
  3. 当我想编译 trunk 时,只需输入 cd trunk; mvn clean package 。但它会编译每个模块。当需要构建产品时,类似的事情。
  4. 中心 Maven 存储库

问题

  1. 是否可以仅编译更新的模块?实际上我只想在可能的情况下编译修改后的源文件。我知道这很简单 antmake 。然而,maven compile始终从头开始。
  2. 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/

相关文章:

Java Jersey 验证

java - 如何从扩展可比较并实现通用接口(interface)的类创建实例?

java - 创建独立的哈希函数

java - 是否可以从核心文件中确定用于启动 JVM 的 main 方法?

linux - 使用 MacOS、Linux 和 Windows 的 SVN

c# - svn check out 使用C#程序

svn - 由于 poms 中的版本更改,合并来自 Maven 发布分支的更改会产生冲突

svn - 与 Subversion 1.5(和 1.4 Server)合并非常慢

java - 为什么 Maven 失败并出现 SurefireExecutionException : > Cannot set option parallel with value

java - JSF2 和 Maven - 热部署?