在我的CruiseControl.net配置中只运行了两个项目

时间:2008-10-31 20:31:53

标签: svn cruisecontrol.net nant ccnet-config

我是第一次创建集成服务器,虽然我的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>

任何人都可以帮助我吗? 谢谢 卡特

其他信息:

  • 日志文件没有错误,也没有提及第二个项目
  • 网络界面仅显示第一个项目

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

问题是拼写错误,我错过了日志文件中的错误。 WorkingDirectory标签缺少最后一个'r'。

3 个答案:

答案 0 :(得分:2)

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

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

  3. 如果是这样,你可以对它进行强制构建吗? (编辑答案:不,因为它没有显示。

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

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

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

答案 1 :(得分:0)

Interval triggers IfModificationExists 的默认 buildCondition ,这意味着只有在{{3}内检测到修改后才会启动构建}}

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

  

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

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

<triggers>
    <intervalTrigger name="continuous" buildCondition="ForceBuild" seconds="60"/>
</triggers>

答案 2 :(得分:0)

你到底了吗?

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

我建议在这个阶段使用控制台应用程序(ccnet.ext)而不是服务 - 你可以看到更容易的事情。 此外,在启动控制台之前,通过打开ccnet.exe.config文件,找到 log4net 标记并设置级别值=“DEBUG”在其中 root

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

希望这有帮助。