0

刚刚开始将 CruiseControl.NET 用于我们正在处理的一个小项目,我无法将 XML 文件合并到构建完成后运行的电子邮件发布者中。

根据我的阅读,我需要确保合并标记出现在 xml 记录器之前,并且文件必须存在于指定位置,这就是我在下面所做的。

<merge>
     <files>
         <file>C:\CCNet\xxx.xml</file>
     </files>
</merge>    
<xmllogger />

我尝试合并的文件最初是 NAnt/NUnit 输出的结果,但是在尝试诊断问题时,我通过从已知位置合并到上述静态 XML 文件并仍然具有同样的问题。

XML 是否必须采用特定格式?我的意思是不加载 XSL 文件以便电子邮件发布者知道如何显示它吗?

如果需要,完整的构建脚本如下。

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
    <cb:define MainDir="C:\CCNet"/>
    <cb:define WorkingDir="Working"/>
    <cb:define ReleaseDir="Release"/>
    <cb:define ArtifactsDir="BuildArtifacts"/>
    <cb:define StateDir="State"/>

    <cb:define name="BuildTask">
        <nant>
            <baseDirectory>$(MainDir)\$(WorkingDir)\NaturalTalent\$(Build)</baseDirectory>
            <executable>C:\Program Files\nant-0.92\bin\NAnt.exe</executable>
            <buildFile>default.build</buildFile>                
            <buildArgs>-D:CCNetReleaseDirectory=$(MainDir)\$(ReleaseDir)\NaturalTalent\$(Build)</buildArgs>
        </nant> 
    </cb:define>

    <cb:define name="CommonProjectSettings">
        <state type="state" directory="$(MainDir)\$(StateDir)" />
        <workingDirectory>$(MainDir)\$(WorkingDir)\NaturalTalent\$(Build)</workingDirectory>
        <artifactDirectory>$(MainDir)\$(ArtifactsDir)\NaturalTalent\$(Build)</artifactDirectory>

        <sourcecontrol type="git">
            <repository>http://cruizecontrol:password@192.168.1.155/gitlab/nga.git</repository>
            <workingDirectory>$(MainDir)\$(WorkingDir)\NaturalTalent\$(Build)</workingDirectory>
        </sourcecontrol>

        <publishers>
            <merge>
                 <files>
                     <file>C:\CCNet\xxx.xml</file>
                 </files>
            </merge>        

            <statistics />
            <xmllogger />
            <artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" />

            <email from="ccnet@nga.net" mailhost="bart" mailport="25" includeDetails="true">
                <users>
                    <cb:Users />
                </users>
                <groups>
                    <group name="developers">
                      <notifications>
                        <notificationType>Failed</notificationType>
                        <notificationType>Fixed</notificationType>
                      </notifications>
                    </group>
                    <group name="buildmaster">
                      <notifications>
                        <notificationType>Always</notificationType>
                      </notifications>
                    </group>
                </groups>
                <xslFiles>
                    <file>xsl\header.xsl</file>
                    <file>xsl\compile.xsl</file>
                    <file>xsl\modifications.xsl</file>                  
                  </xslFiles>               
            </email>
        </publishers>           
    </cb:define>

    <project name="NaturalTalent (TRUNK) - Latest">
        <cb:scope Build="Latest">
            <cb:define name="Users">
                <user name="Anton Felich" group="buildmaster" address="anton.felich@nga.net" />
                <!--<user name="David Ames" group="buildmaster" address="david.ames@nga.net" />
                <user name="David Ames" group="buildmaster" address="davidames76@gmail.com" />-->
            </cb:define>

            <cb:CommonProjectSettings />

            <tasks>
                <cb:BuildTask />
            </tasks>                        

            <triggers>
                <intervalTrigger name="continuous" seconds="30" buildCondition="IfModificationExists" initialSeconds="5"/>
            </triggers>
        </cb:scope>
    </project>

    <project name="NaturalTalent (TRUNK) - Nightly">
        <cb:scope Build="Nightly">
            <cb:define name="Users">
                <user name="Anton Felich" group="buildmaster" address="anton.felich@nga.net" />
                <!--<user name="David Ames" group="buildmaster" address="david.ames@nga.net" />-->
                <!--<user name="David Ames" group="buildmaster" address="davidames76@gmail.com" />
                <user name="HouTan" group="buildmaster" address="hou.tan@nga.net" />
                <user name="MickHutchinson" group="buildmaster" address="mick.hutchinson@nga.net" />
                -->
            </cb:define>                    

            <tasks>
                <cb:BuildTask />
                <nant>
                    <baseDirectory>$(MainDir)\$(WorkingDir)\NaturalTalent\$(Build)</baseDirectory>
                    <executable>C:\Program Files\nant-0.92\bin\NAnt.exe</executable>
                    <buildFile>default.build</buildFile>                
                    <buildArgs>-D:CCNetReleaseDirectory=$(MainDir)\$(ReleaseDir)\NaturalTalent\$(Build)</buildArgs>
                    <targetList>
                        <target>test</target>
                    </targetList>                   
                </nant>         
            </tasks>                        

            <cb:CommonProjectSettings />
        </cb:scope>

        <triggers>
            <scheduleTrigger time="23:30" buildCondition="ForceBuild" name="Nightly" />
        </triggers>
    </project>
</cruisecontrol>
4

1 回答 1

1

只要 xml 文件包含格式正确的 xml(它应该是)......“吸收到 build.xml 中的一切应该可以很好地完成任务。

由于您是新手,我猜您可能没有正确设置目录。

下载这个工具:

http://www.voidtools.com/download.php

搜索您的“xxx.xml”........然后确保该任务的目录是正确的。

PS,您可以使用通配符作为文件名(如下所示),这就是我所做的。

  <publishers>
    <merge>
      <files>


     <file>C:\ExactFolderWhereThisFileExists\*RESULTS.xml</file>              


      </files>
    </merge>
于 2013-10-11T18:46:44.753 回答