Maven 2 巡航控制-父/子项目

Maven 2 巡航控制-父/子项目,maven-2,continuous-integration,cruisecontrol,Maven 2,Continuous Integration,Cruisecontrol,我使用巡航控制不断检查我的项目,到目前为止,它似乎比continuum工作得更好,除了一些小问题 如果我有一个依赖于多个其他项目的项目,并且我更新了其中一个依赖项,而没有更新其版本号,因此不需要更改父pom,那么父pom将永远无法重建 这是可能的,还是我应该在每次更改后返回并继续增加pom,然后根据需要在父级中进行相应的更改 我希望这会自动完成(如果巡航控制系统有更紧密的maven集成),这样我就能神奇地知道这一变化打破了下游的一些东西 我猜我的新格式可能是: ${date}.${buildNu

我使用巡航控制不断检查我的项目,到目前为止,它似乎比continuum工作得更好,除了一些小问题

如果我有一个依赖于多个其他项目的项目,并且我更新了其中一个依赖项,而没有更新其版本号,因此不需要更改父pom,那么父pom将永远无法重建

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

我希望这会自动完成(如果巡航控制系统有更紧密的maven集成),这样我就能神奇地知道这一变化打破了下游的一些东西

我猜我的新格式可能是:

${date}.${buildNumber}

2009.12.18.1
谢谢,
沃尔特

不幸的是,我对巡航控制了解不够,无法直接回答你的问题


然而,我在这方面有着积极的经验。Hudson被广泛用作CI服务器,是免费的,并且具有优秀的Maven集成,并且可以完美地处理您所描述的内容。

如果您的项目在Maven中处于父->子关系,则构建父项目还应在每次使用安装目标时使用新解析的依赖项构建其模块

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

  • 在POM的顶层和最后的to include-SNAPSHOT中更改版本。这迫使maven在指定的时间范围内检查任何依赖项的新版本,默认情况下每天检查一次。这种行为可以通过特别改变-你可以让它检查每一次,如果你愿意。当涉及到标记然后构建/发布项目时,您需要删除发布版的-SNAPSHOT限定符,然后在增加版本号后重新添加它,以支持下一个开发周期
  • 在CI服务器中,可以强制项目连续生成。因为看起来您切换到了Hudson,所以它应该包括基于另一个项目的完成设置构建触发器,就像您希望为scm轮询添加触发器一样

  • 我刚在大约5分钟内把哈德逊装置好。看起来它可能更适合我想要的。巡航控制可能可以做到这一点,但配置更为复杂。我改变了标记发布的方式,现在使用快照。我需要做的主要事情是强制连续构建或实现父子关系。我认为亲子关系可能是最好的,并会尝试一下。重要的是,每次我更改子组件时,都要将更改传播到父组件,以便我自动集成测试所有组件。