我在Hudson中使用Maven 2组装了两个项目,比如:Shared.jar和Server.jar。
服务器依赖于Shared。
我想实现以下构建方案:
这是明显的行为,但我得到的是我在第三种情况下建立了两次Server。有没有机会解决这个问题?我正在使用Hudson 1.392
在SVN项目中看起来如下:
+ SVN repo root
|
+ Server
| ...
| pom.xml
+ Shared
...
pom.xml
答案 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。现在,如果进行了服务器提交或共享作业完成,将触发服务器作业。
我认为这可以做你想要的......