我已经设置了我的哈德森工作A.工作A取决于工作B和C.我已经设置了“构建其他项目”。虽然每个作业都在我的工作区(默认结构)中的单独目录中,但这种方法效果很好。但是我需要在作业工作区(根文件夹)中使用作业B和C.
我考虑了两种方法:
对我来说,理想的方法是使用ant构建脚本并使用antsvn或类似的东西从那里触发作业B和C.但我找不到一个可靠的例子。
我想要这种方式的原因很简单 - 作业B是CMS,它对于作业A是必不可少的,作业C具有需要在新版本可以降落到生产服务器之前执行的python脚本(这已经通过py-完成了蚁)。
或者也许有更好的方法来管理这样的依赖关系。任何帮助表示赞赏。
我希望这是有道理的。
答案 0 :(得分:4)
将乔布斯“B”和“C”视为生成“工作”A所需的“工件”。然后,您需要做的就是在构建Job“A”时导入Jobs“B”和“C”生成的工件。
您的工作不应共享工作空间。否则如果在触发作业“B”或“C”时作业“A”正在建立会发生什么?您将同时进行多个构建。但是,如果您从作业“B”和“C”中分离出“A”需要的内容,则可以让作业“A”导入这些依赖项。有两种方法可以做到这一点:
wget
或curl
从存储库中获取项目,并使用Maven的deploy:deploy-file
插件发送内容。您将需要Maven(这是一个Java进程)来运行deploy:deploy-file
,但您不需要Maven项目,甚至不需要Java项目。 deploy:deploy-file
插件甚至不需要Maven pom.xml
文件。可以把它想象成一个命令行工具,将东西发送到你的发布库。