我的情况是需要构建SVN中的一系列Java项目以进行持续集成。项目可以存在于多个分支中,我想在所有分支上执行CI构建。但是,我宁愿不为每个Java项目/ SVN分支组合使用不同的Jenkins项目。我所做的是创建Jenkins项目,将SVN分支作为参数,并设置项目依赖关系链,传递分支参数。 (我正在使用Ivy进行这个项目,而不是Maven,所以我没有插件为我做这个。)我为每个分支设置了一个链启动工作,它定义了分支参数并自动启动了几次每一天。
PROS:这允许我为每个分支创建一个Jenkins启动项目,而不是整个项目链。
缺点:构建按计划进行,而不是SVN轮询的结果。这意味着即使在该分支中没有进行任何更改,所有分支每天都会多次构建。
理想情况下,我希望启动项目定期轮询链中的所有项目,并在有任何更改时构建链。有没有办法做到这一点?是否像在启动项目中指定所有项目位置一样简单(使用分支参数)然后将轮询指定为构建触发器?
答案 0 :(得分:1)
如果我理解正确:你想从你的"启动"轮询一些SVN位置。工作,但你不想要你的开始"实际检查所有这些SVN位置的工作?
您可以配置"启动"作业,给所有可能的SVN位置(或顶级位置,例如/branches/
下面将包含所有分支),并将结帐深度设置为为空。然后在此作业上配置SCM轮询。它将轮询所有SVN位置,但实际上不会执行冗长的结账。一旦检测到SCM更改,您的启动作业将启动,并触发链的其余部分