2009-07-10 35 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

相关问题