哈德森:建立链接和两个项目

时间:2011-04-20 10:45:59

标签: continuous-integration hudson

我在Hudson中使用Maven 2组装了两个项目,比如:Shared.jar和Server.jar。

服务器依赖于Shared。

我想实现以下构建方案:

  1. 当事情发生时 服务器 - 仅重建服务器。
  2. 当事情发生时 然后,共享 - 首先建立共享 服务器
  3. 当事情发生时 服务器和共享(在一次提交中) 他们在一个SVN回购中 - 首先 建立共享,然后是服务器。
  4. 这是明显的行为,但我得到的是我在第三种情况下建立了两次Server。有没有机会解决这个问题?我正在使用Hudson 1.392

    在SVN项目中看起来如下:

    + SVN repo root
     |
     + Server
     |  ...
     |  pom.xml
     + Shared
        ...
        pom.xml
    

1 个答案:

答案 0 :(得分:1)

我没有看到一种简单的方法来做到这一点,但我认为有一种不太难的方式。

创建一个新作业(此示例称为TRIGGER),该作业具有监视服务器和共享的构建触发器。当某些东西被提交(到服务器或共享)时,有一个构建任务(在我的情况下,可能是Windows bat或PowerShell脚本),它将检查提交的内容并决定需要构建什么 - 服务器或共享。基本上,你的三个案例逻辑将在这里处理。

根据结果,让构建任务在工作区中创建/更新两个文件 - 调用其中一个BUILDSHARED.TXT和另一个BUILDSERVER.TXT(例如)。如果希望重建该组件,则需要更改文件的内容(例如将$ BUILD_TAG转储到其中)。注意:如果要重建BOTH Server和Shared,则需要指明应重建共享作业。现在,让作业归档这两个文件。

修改您的共享作业以包含URL Change Trigger插件。设置构建触发器以监视TRIGGER作业的BUILDSHARED.TXT文件的永久链接的URL。当监视的文件发生更改时,将触发新的Shared版本。

同时修改您的共享作业,以在成功完成后启动服务器作业的下游构建。您可以使用“构建其他项目”选项来执行此操作,或使用我个人喜欢的内容Parameterized Trigger Plugin

最后,修改您的服务器作业以使用URL Change Trigger插件。将其设置为监视TRIGGER作业的BUILDSERVER.TXT文件的永久链接的URL。现在,如果进行了服务器提交或共享作业完成,将触发服务器作业。

我认为这可以做你想要的......