2009-07-10 89 views
0

所以從我可以告訴,你必須指定每個項目的工件和工作目錄,每次。有沒有辦法在CruiseControl.Net中爲整個網站指定一個artifactsDirectory?

我想我正在尋找一種方法來cc.net項目名稱文件夾移動到其他地方相比,服務器從啓動,這樣我可以這樣做:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 

    <!-- something like this should exist 
    <baseDirectory>D:\Integration</baseDirectory> 
    --> 

    <project name="MyProject1"> 
     <workingDirectory>D:\Integration\working\MyProject1</workingDirectory> 
     <artifactDirectory>D:\Integration\artifacts\MyProject1</artifactDirectory> 
     <state type="state" directory="D:\Integration\state\MyProject1" /> 
    </project> 

    <project name="MyProject2"> 
     <workingDirectory>D:\Integration\working\MyProject2</workingDirectory> 
     <artifactDirectory>D:\Integration\artifacts\MyProject2</artifactDirectory> 
     <state type="state" directory="D:\Integration\state\MyProject2" /> 
    </project> 

</cruisecontrol> 

然後,我不必爲每個項目分別指定這些目錄。他們只會在某個默認文件夾結構的基礎上 - 即D:\ Integration \ working \下創建項目名稱下作爲

回答

2

有沒有想過使用預處理器命令?

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 

    <cb:define name="project.template"> 
     <project name="$(project.name)"> 
      <workingDirectory>D:\Integration\working\$(project.name)</workingDirectory> 
      <artifactDirectory>D:\Integration\artifacts\$(project.name)</artifactDirectory> 
      <state type="state" directory="D:\Integration\state\$(project.name)" /> 
     </project> 
    </cb:define> 

    <cb:project.template project.name="MyProject1" /> 

    <cb:project.template project.name="MyProject2" /> 

</cruisecontrol> 
+0

我確實使用預處理器,但沒有按照您的建議。我的大部分項目都不適合單個模板,但我仍然看到嵌套擴展如何工作。儘管如此,我仍然希望能夠爲所有與項目相關的目錄聲明一個新的基礎目錄。 – 2009-08-13 19:20:21

1

的基礎,現在我明白了。我認爲目前沒有辦法做到這一點,但會是一個很好的功能。你應該去谷歌組ccnet-devel,並在那裏發佈消息作爲功能請求。我也可以用這個。好主意。

+0

對不起,我編輯了條目,使其更加清晰。 – 2009-07-14 14:50:02

相關問題