配置CruiseControl.net项目目录

时间:2009-08-09 11:11:21

标签: cruisecontrol.net

CruiseControl.net为每个项目创建(默认情况下)下面的子目录:c:\Program File\CruiseControl.NET\server

我该如何改变? (将数据与程序文件混合起来是个坏主意......)

我找到了一种方法来为每个项目配置工件目录,但这不是它(它只是项目目录的子目录)。

3 个答案:

答案 0 :(得分: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 :(得分:0)

我有CC.NEt没有安装在这里,我在工作时无法访问我的构建服务器,但如果我记得很清楚,你应该在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.config文件中的ccnet.config appSetting,以便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文件将不会对模式进行验证。

答案 2 :(得分:0)

可能不是你正在等待的答案,但仍然很有趣:我们使用了大约20个构建机器,大约有50种不同的构建。因为将数据与程序文件混合起来确实不是一个好主意,所以我们决定将ccnet安装放在源代码管理中。每个服务器在该目录中都有自己的配置文件(也在源代码管理中),本地批处理文件或快捷方式启动ccnet指定使用哪个配置文件。这意味着本地数据(构建日志)与perforce(ccnet二进制文件/配置文件)中的数据混合,但我们已接受这种情况。希望这会有所帮助。

此致

Sebastiaan