CruiseControl.net为每个项目创建(默认情况下)下面的子目录:c:\Program File\CruiseControl.NET\server
我该如何改变? (将数据与程序文件混合起来是个坏主意......)
我找到了一种方法来为每个项目配置工件目录,但这不是它(它只是项目目录的子目录)。
答案 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>
我就是这样做的:
<!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>
通过这样做,我可以将每个项目配置放在自己的文件中,并且我可以将每个项目配置放在它自己的目录中。
答案 2 :(得分:0)
可能不是你正在等待的答案,但仍然很有趣:我们使用了大约20个构建机器,大约有50种不同的构建。因为将数据与程序文件混合起来确实不是一个好主意,所以我们决定将ccnet安装放在源代码管理中。每个服务器在该目录中都有自己的配置文件(也在源代码管理中),本地批处理文件或快捷方式启动ccnet指定使用哪个配置文件。这意味着本地数据(构建日志)与perforce(ccnet二进制文件/配置文件)中的数据混合,但我们已接受这种情况。希望这会有所帮助。
此致
Sebastiaan