CruiseControl多个源文件夹

时间:2010-04-20 15:10:49

标签: configuration cruisecontrol.net

我想编译一个项目(使用CruiseControl),不仅是因为它的源代码发生了变化,而且还有一些依赖项会发生变化。

例如: 我有3个文件夹:

c:\ myProject \ src(我的源文件夹)
c:\ dependency1 \ src(依赖关系1的源代码)
c:\ dependency2 \ output(依赖关系2的dll)

如果其中一个文件夹中的任何内容发生变化,我想在cruisecontrol中编译我的项目。

如何在ccnet.config中配置?

再见,谢谢 尔根

2 个答案:

答案 0 :(得分:4)

应该是这样的:

<project>
  <!-- ... -->
  <sourcecontrol type="multi">
    <requireChangesFromAll>False</requireChangesFromAll>
    <sourceControls>
      <svn>
        <trunkUrl>svn://svn.mycompany.com/myProject/trunk</trunkUrl>
        <workingDirectory>c:\myProject\src</workingDirectory>
        <!-- ... -->
      </svn>
      <svn>
        <trunkUrl>svn://svn.mycompany.com/dependency1/trunk</trunkUrl>
        <workingDirectory>c:\dependency1\src</workingDirectory>
        <!-- ... -->
      </svn>
      <filtered>
        <exclusionFilters />
        <inclusionFilters>
          <pathFilter>
            <caseSensitive>False</caseSensitive>
            <pattern>c:\dependency2\output\dependency2.dll</pattern>
          </pathFilter>
        </inclusionFilters>
        <sourceControlProvider type="filesystem">
          <autoGetSource>False</autoGetSource>
          <ignoreMissingRoot>True</ignoreMissingRoot>
          <repositoryRoot>c:\dependency2\output</repositoryRoot>
        </sourceControlProvider>
      </filtered>
    </sourceControls>
  </sourcecontrol>
  <!-- ... -->
</project>

答案 1 :(得分:2)

如果您将依赖项设置为subversion外部,请按照this StackOverflow thread上的说明进行操作。

如果他们都在自己的subversion存储库中,您可以尝试this post by Mark Cohen

如果更改仅在文件系统级别进行,那么您可以尝试<filesystem>修改集检测器。