巡航控制 - 父/子项目

时间:2009-12-18 21:23:07

标签: maven-2 continuous-integration cruisecontrol

我正在使用巡航控制来不断检查我的项目,到目前为止,除了一些小问题外,它似乎比连续性更好。

如果我有一个依赖于其他几个项目的项目,并且我更新其中一个依赖项而不更新其版本号,因此不需要更改父pom,父项将永远不会重建。

这是可能的,还是我应该回去并在每次更改后继续增加pom,然后根据需要在父母中进行相应的更改?

我希望这会自动完成(如果巡航控制有更严格的maven整合),那么我会神奇地知道这种变化打破了下游的东西。

我猜我的新格式可能是:

${date}.${buildNumber}

2009.12.18.1

谢谢, 沃尔特

2 个答案:

答案 0 :(得分:1)

如果您的项目在maven中处于parent->子关系中,那么构建父项也应该每次使用安装目标时使用新解析的依赖项构建其模块。

根据您的描述,听起来您没有包含模块的父项目,而是在它们之间没有一些具有依赖关系的单独项目。在这种情况下,我建议你做两件事

  1. 更改poms顶层的版本,并在最后添加-SNAPSHOT。这会强制maven在指定的时间范围内检查任何依赖项的新版本 - 默认情况下每天。可以通过专门更改updatePolicy for your repositories来更改此行为 - 如果您愿意,可以每次检查一次。在标记然后构建/发布项目时,您需要删除该版本的-SNAPSHOT限定符,然后在增加版本号后重新添加它以支持您的下一个开发周期。
  2. 在CI服务器中,您可以强制项目连续构建。由于看起来你切换到了Hudson,它应该涉及根据你想要为scm轮询添加触发器来完成另一个项目来设置构建触发器。

答案 1 :(得分:0)

不幸的是,我不太了解巡航控制直接回答你的问题。

但是我对Hudson有过积极的体验。 Hudson被广泛用作CI服务器,是免费的,具有出色的Maven集成,可以完美地处理您所描述的内容。