2011-04-20 44 views
1

我有两个项目在Hudson和Maven 2中组装,例如:Shared.jar和Server.jar。Hudson:构建链接和两个项目

服务器依赖于Shared。

我要实现以下生成方案:

  1. 当一些致力于 服务器 - 只有服务器被重建。
  2. 当有事致力 共享 - 第一个共享建立,然后 服务器。
  3. 当有东西提交到 服务器和共享(在一个提交作为 他们在一个SVN回购) - 第一个 共建,然后服务器。

很明显的行为,但我什么,我得到的是我在第三的情况下建立服务器的两倍。有没有什么机会解决这个问题?我使用哈德森1.392

在SVN项目看起来如下:

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

你能给你的svn的结构更加位信息?服务器和共享在单独的子目录中吗? – artbristol 2011-04-20 11:19:56

+0

一个回购,两个目录:用于服务器和共享 – glaz666 2011-04-20 11:24:34

回答

1

我没有看到一个简单的方法来做到这一点,但我认为这是一个不太艰难的道路。

创建一个新的Job(在此示例中称为TRIGGER),该Job有一个监视Server和Shared的构建触发器。当有事情发生时(对服务器或共享),有一个构建任务(在我的情况下,可能是一个Windows蝙蝠或PowerShell脚本),将检查什么是承诺,并决定需要建立什么 - 服务器或共享。基本上,你的三个案例逻辑将在这里处理。

根据结果,让构建任务创建/更新工作区中的两个文件 - 调用其中一个BUILDSHARED.TXT和另一个BUILDSERVER.TXT(例如)。当你想要重建该组件时,你需要改变文件的内容(比如将$ BUILD_TAG转储到其中)。注意:如果要重建“BOTH服务器”和“共享”,则需要指示共享作业应重建。现在,让作业存档这两个文件。

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

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

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

我想这你想要做什么......

+0

那么,这绝对是一种方法来做到这一点......但是如果我没有找到针对我的问题的任何内置解决方案,那么我最好坚持重新构建服务器和共享,从而更新任何存储库,尽管避免更好。 – glaz666 2011-04-21 07:36:11