2009-08-09 89 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