1

我是第一次创建集成服务器,虽然我的 Cruisecontrol 配置文件中有两个项目,但似乎只有第一个项目正在执行。我的配置文件粘贴在下面。

<cruisecontrol>

    <project name="cc-config">
        <triggers>
            <intervalTrigger seconds="60" />
        </triggers>
        <sourcecontrol type="svn">
            <trunkUrl></trunkUrl>
            <workingDirectory>C:\Program Files (x86)\CruiseControl.NET\server\config</workingDirectory>
        </sourcecontrol>
    </project>

    <project name="stable_trunk">
        <workingDirectoy>C:\working</workingDirectory>
        <artifactDirectory>C:\artifact</artifactDirectory>
        <triggers>
            <intervalTrigger name="continuous" seconds="60"/>
        </triggers>
        <sourcecontrol type="svn">
            <trunkUrl></trunkUrl>
            <workingDirectory>C:\projects\security\trunk</workingDirectory>
        </sourcecontrol>
        <tasks>
            <nant>
                <executable>C:\projects\security\trunk\tools\nant-0.86-nightly-2008-08-18\bin\nant.exe</executable>
                <buildFile>C:\projects\security\trunk\security.build</buildFile>
            </nant>
        </tasks>
        <externalLinks>
            <externalLink name="proj" url="projURL">
        </externalLinks>
    </project>

</cruisecontrol>

有谁能够帮我?谢谢卡特

附加信息:

  • 日志文件没有错误,也没有提到第二个项目
  • Web 界面只显示第一个项目

就好像第二个项目甚至不存在一样。

问题是错字,我错过了日志文件中的错误。WorkingDirectory 标记缺少最后一个“r”。

4

3 回答 3

2
  1. 您是否检查过您的 CCNet 构建日志是否有任何异常?(编辑答案:是的,没有。

  2. 登录 CCNet Web 服务器,第二个项目是否显示为有效项目?(编辑答案:不,它没有。

  3. 如果是这样,您可以在其上建立力量吗?(编辑答案:不,因为它没有出现。

因此,由于这些答案,我的下一个建议是从命令行(而不是通过服务)启动您的 cc 服务器,以查看是否出现任何消​​息。

这是令人惊讶的,因为通常当我的 CCNet 配置文件中有错误时,服务器会崩溃(非常困难),并且总是让我知道有问题。我真的很惊讶您可能会添加一个未显示或使服务器崩溃的项目。

您可能会尝试走简单的路线,只需添加第三个空项目,看看您是否可以让 /that/ 出现在您的列表中。此外,您可以尝试插入一个您知道会使其崩溃的故意拼写错误,然后看看您是否可以让它显示出来。我担心您可能正在编辑错误的配置文件,或者 CCNet 实际上并没有看到您对其所做的更改(源代码控制同步问题?)。

于 2008-10-31T20:40:33.980 回答
0

你有没有深究?

如果没有,请查看您的日志文件 (?:\Program Files\CruiseControl.NET\server\ccnet.log)。

我建议在这个阶段使用控制台应用程序 (ccnet.ext) 而不是服务 - 你可以更容易地看到正在发生的事情。此外,在启动控制台之前,请确保通过打开 ccnet.exe.config 文件,找到log4net标记并在其root中设置level value="DEBUG"将其设置为 DEBUG 日志记录。

启动控制台并让它运行几分钟,然后停止它并查看日志(如果仍有问题,请在此处发布)。

希望这可以帮助。

于 2008-11-03T15:21:38.553 回答
0

间隔触发器的默认buildConditionIfModificationExists ,这意味着只有在源代码控制块中检测到修改时才会启动构建。

来自 ccnet 的关于 buildCondition 属性的文档

应该用于启动集成的条件。默认情况下,此值为 IfModificationExists,这意味着只有在检测到修改时才会触发集成。将此属性设置为 ForceBuild 以确保无论是否检测到新修改都应启动构建。使用源代码控制块来指定要观察哪些修改。

因此,如果想要始终启动构建,无论是否在源代码管理中发生了修改,那么都需要为buildCondition属性指定ForceBuild 。例如:

<triggers>
    <intervalTrigger name="continuous" buildCondition="ForceBuild" seconds="60"/>
</triggers>
于 2008-10-31T23:26:32.570 回答