持续集成工具中的多个相关项目

时间:2009-10-02 00:27:43

标签: continuous-integration hudson

如何设置持续集成服务器来构建多个依赖项目?

我想为在mercurial存储库上托管的项目设置持续集成过程。但是,该项目对托管在不同的mercurial存储库中的另一个项目(在Google上托管)具有编译时依赖性。

使用Hudson,如何为两个项目设置CI作业(同时将一个二进制位置传递给另一个项目构建脚本)?其他工具能否更好地处理它?<​​/ p>

这两个项目都是使用Ant构建脚本的Java项目。

3 个答案:

答案 0 :(得分:5)

我建议调查Maven(或者如果你不想迁移到Maven,Ivy,它与Ant集成) - 它不是CI服务器的工作,就像你所说的那样处理工件依赖。< / p>

也就是说,如果你在Hudson服务器上有两个作业,比如job_a和job_b,你可以配置job_a来存档它的工件(包括你在job_b中需要的jar文件),然后启动job_b。它结束了。然后,在job_b中,您可以使用ant的get任务从http://hudsonserver/job/job_a/lastStableBuild/artifact/jarfile.jar(等)下载jar文件。在那个位置总会有一些东西,因为它是job_a的最后一个稳定版本的符号链接,所以你不必担心job_b运行而不是找到它需要的jar文件。

答案 1 :(得分:4)

Hudson应该能够处理这个问题,因为Hudson支持两个依赖构建(换句话说,构建可以通过完成另一个构建来启动)和Mercurial

根据this thread,可以:

  

配置Hudson以发布构建工件,然后HTTP将这些工件获取到依赖构建。您希望依赖构建的位置独立于第一个构建的位置。

该消息的作者在Hudson Unleashed...中提供了一些可能有用的详细信息。

答案 2 :(得分:0)

在Cruise Control中,您有集成队列。您只需按照您想要的顺序将两个项目放在同一个队列中,它们就会一个接一个地构建。

相关问题