我是CruiseControl.net的新手,正在尝试为我正在进行的项目设置它。该项目保持颠覆,但整个项目由核心项目和几个组件组成,每个组件都有一个单独的subversion项目,每个组件都有一个主干,可能的分支和标签。我需要设置cruisecontrol.net,以便将主核心项目subversion文件夹中的以及任何包含的组件更改为触发构建。显然,如果提交包含提交给多个组件的文件,我仍然只需要一个构建。有可能吗?
答案 0 :(得分:6)
可以:使用多源控制块:
<sourcecontrol type="multi">
<sourceControls>
<svn>
<trunkUrl>svn://foo</trunkUrl>
<workingDirectory>c:\dev\foo</workingDirectory>
</svn>
<svn>
<trunkUrl>svn://bar</trunkUrl>
<workingDirectory>c:\dev\bar</workingDirectory>
</svn>
</sourceControls>
</sourcecontrol>
PITFALL:请注意,sourcecontrol节点从<sourcecontrol type="svn">
更改为<svn>
如果在多源控制块内使用。
答案 1 :(得分:2)
确保每个项目都通过svn:externals包含其组件依赖项。然后configure CruiseControl.NET检查外部:
<checkExternals>True</checkExternals>
这样做的另一个好处是,您可以选择是否遵循依赖项组件的HEAD,或者将svn:externals指向固定版本。