Maven多模块项目持续集成的标准实施规程

Jam*_*ery 7 continuous-integration maven-2

我查了一下,找不到一个好的答案:

我们有一个多模块Maven项目,我们希望不断整合.我们想到了两种处理这个问题的策略:

  • 让我们的持续集成服务器(TeamCity,在这种情况下,但我之前使用过其他人,他们似乎有相同的问题)指向聚合器POM文件,并立即构建所有内容
  • 让我们的持续集成服务器指向每个单独的模块

对此有一个标准的首选做法吗?我已经检查了Stack Overflow,谷歌,持续集成书,但没有找到任何东西,但也许我错过了它.

bma*_*ies 6

哈德森的标准做法至少是你的第一选择.首先,在maven中,如果所有项目都不在反应堆中,那么您的构建可能无法很好地工作.另一方面,尝试使它们成为单独的构建将使您进入快照管理.如果中间的一个发生了变化,并且你试图构建它,那么maven将继续寻找它的依赖关系作为快照.它获得的将取决于其他项目的构建顺序,以及是否发布快照.

如果你有这么多项目,或者这些不相关的项目,构建它们都是一个问题,那么我建议你需要考虑去聚合.使父项成为一个单独的,已发布的项目,为它们中的每一个(或它们的每个子组)提供一个Trunk/Tags/Branches结构,并使它们依赖于版本,而不是快照.