2010-04-20 72 views
2

我想編譯一個項目(使用CruiseControl),不僅僅是它的源代碼發生變化,而且如果一些依賴項發生變化。CruiseControl多個源文件夾

例如: 我得到3個文件夾:

C:\ myProject的\ SRC(我的源文件夾)
C:\依賴關係1 \ SRC(依賴性1的源代碼)
C:\ dependency2 \輸出(dll的依賴關係2)

我想在巡航控制中編譯我的項目,如果其中一個文件夾中的任何內容發生更改。

如何在我的ccnet.config中配置此項?

再見和感謝 克林斯曼

+0

我忘了提,myProject的是SVN。 – Juergen 2010-04-20 15:15:19

回答

2

如果你有依賴關係設置爲顛覆的外部,然後按照this StackOverflow thread的說明。

如果它們各自在自己的Subversion存儲庫中,那麼可以嘗試類似this post by Mark Cohen之類的東西。

如果更改僅在文件系統級別,那麼您可以嘗試使用<filesystem>修改集檢測器。

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>