我如何告诉Hudson构建模块而不是工作?

时间:2010-12-08 09:49:31

标签: maven-2 hudson maven

我在Hudson上有很多工作,其中大部分都很小,仅包含几个模块。但其中一个很大,包含几个模块。

当我为这个大工作中的任何一个模块提交我们的subversion存储库时,Hudson构建整个作业而不仅仅是已经改变的模块。

如果我只是scm-polling或subversion hook无关紧要,结果是一样的。

在我看来,如果由于其他作业中的其他模块依赖于模块而不是作业,那么构建而不是作业的模块会更好。

这可以配置还是我必须创建多个作业而不是大作业?如果是这样的话,我可以将大型工作配置为在任何模块被触发时从不构建,但是当它自己的pom.xml被更改时仍然构建吗?

感谢。

3 个答案:

答案 0 :(得分:1)

Hudson在作业配置的Maven区域中有一个“Incremental Build”选项。

它隐藏在“高级”区域。

答案 1 :(得分:0)

您可以使用reactor plugin。例如:

mvn reactor:make-scm-changes

这只会构建SCM中已更改的模块。请点击链接以获取其他示例。

答案 2 :(得分:0)

您的编译器不提供增量编译选项吗? java 1.6编译器通常搜索类和源文件,并决定使用时间戳来确定是使用源文件还是类文件。在构建代码时,请忽略干净的目标。

另一种选择是首先运行批处理/ shell脚本以确定更改的文件并删除相应的类文件,以便编译器逐步构建缺少的类文件。