2009-08-09 90 views
2

CruiseControl.net每個創建(默認)項目下的子目錄:c:\Program File\CruiseControl.NET\server配置CruiseControl.net項目目錄

我怎樣才能改變這種狀況? (將數據與程序文件混合在一起是一個壞主意......)

我找到了一種爲每個項目配置工件目錄的方法,但這並不完全(它只是項目目錄的子目錄)。

回答

0

我在這裏沒有安裝CC.NEt,並且我的atm在工作時無法訪問我的構建服務器,但是如果我沒記錯的話,應該在c:\ Program Files \ CruiseControl.NET中找到2個配置文件夾。

ccnet.exe.config和ccservice.exe.config。

第一個配置文件在使用控制檯應用程序運行CC.NET時使用,第二個配置文件在啓動CC.NET作爲服務時使用。

在這些文件中,您應該找到一個配置設置,它指向描述項目構建過程的配置文件的位置。

編輯: 在ccservice.exe.config文件中,您會在appSettings部分找到一個名爲ccnet.config的密鑰。將此鍵的值更改爲您要放置ccnet.config文件的路徑。
如果該鍵不存在,你可以添加:

<appSettings> 
    <!-- Without this appSetting ccservice will look for ccnet.config in its own directory. --> 
    <add key="ccnet.config" value="D:\CCNetConfigFiles\ccnet.config"/> 
</appSettings> 

這是多麼我已經做到了:

  • 我在ccservice.exe改變的ccnet.config appSetting .config文件,以便CruiseControl.NET在不同位置而不是標準位置搜索ccnet.config文件。 (如上所述)。 (據我所知,你不希望這樣做?)
  • 我已經改變了的ccnet.config文件本身,所以它看起來是這樣的:
 
<!DOCTYPE cruisecontrol [ 
    <!ENTITY project1  SYSTEM "file:D:\CCNETConfigFiles\project1\project1buildconfig.xml.config"> 
    <!ENTITY project2  SYSTEM "file:D:\CCNETConfigFiles\project2\project2buildconfig.xml.config"> 
    <!ENTITY project3 SYSTEM "file:D:\CCNETConfigFiles\project3\project3buildconfig.xml.config"> 
]>
<cruisecontrol> 

    &project1; 
    &project2; 
    &project3; 

</cruisecontrol> 

通過這樣做,我可以將每個項目配置放在它自己的文件中,我可以將每個項目配置放在它自己的目錄中。

  • 然後,我只是要確保每個項目的配置文件,我刪除了CruiseControl的標籤,因爲否則的ccnet.config文件將不會根據模式驗證。
+0

那不是我的問題。項目在ccnet.config中配置。我感興趣的是如何在添加新項目時配置添加了項目_folders_的目錄。 – 2009-08-09 14:03:05

+0

你應該更好地閱讀我的答案,我猜。 – 2009-08-09 14:06:14

+0

我剛纔。也許我誤解了一些東西。 「描述項目構建過程的配置文件的位置」是\ server目錄。在其中存在幾個子目錄,每個項目一個。這些子目錄不包含配置文件。它們大多包含構建的工件。你是否建議在ccservice.exe.config中確定這些子目錄的位置?因爲我找不到它。 – 2009-08-09 18:06:47

0

可能不是您正在等待的答案,但仍然可能會很有趣:我們使用了大約20個具有大約50個不同構建的構建機器。因爲混合數據和程序文件並不是一個好主意,所以我們決定將我們的ccnet安裝放在源代碼控制中。每個服務器在該目錄中(也在源代碼管理中)都有自己的配置文件,並且本地批處理文件或快速啓動ccnet指定使用哪個配置文件。這意味着本地數據(構建日誌)與執行中的數據(ccnet二進制文件/配置文件)混合在一起,但我們已經接受了這種情況。希望這可以幫助。

問候,

Sebastiaan

+0

嗯,它不真的回答我的問題。不過,我確實在我的cc.net安裝下保留了所有非二進制文件。這是個好主意。 – 2009-08-09 18:07:52

7

設置項目的工作和工件目錄,即可大功告成。他們默認爲:

  • [ccnet-install-dir]\[project-name]\WorkingDirectory
  • [ccnet-install-dir]\[project-name]\Artifacts

如果你設置這些目錄...

  • [projects-dir]\[project-name]\WorkingDirectory
  • [projects-dir]\[project-name]\Artifacts

...你可以安全地刪除[ccnet-install-dir]\[project-name]子樹(你將失去你的項目建立的歷史則)。

那麼你的配置看起來像這樣:

<project name="foo"> 
    [...] 
    <workingDirectory>C:\projects\foo\WorkingDirectory</workingDirectory> 
    <artifactDirectory>C:\projects\foo\Artifacts</artifactDirectory> 
    [...] 
</project> 
+1

是的,但是*你如何設置這些目錄? – 2009-11-23 18:20:19

+0

@splattered bits:添加配置片段。現在應該更清楚了。 – 2009-11-24 09:50:24