2013-10-11 19 views
0

刚刚开始使用CruiseControl.NET来处理我们正在处理的一个小型项目,并且我无法将XML文件合并到一旦生成为完成。如何使用CruiseControl.NET中的发布者合并文件

从我读过的内容中,我需要确保合并标记出现在xml记录器之前,并且该文件必须存在于指定的位置,这正是我在下面所做的。

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

我试图合并的文件原本是南特/ 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:[email protected]/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="[email protected]" 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="[email protected]" /> 
       <!--<user name="David Ames" group="buildmaster" address="[email protected]" /> 
       <user name="David Ames" group="buildmaster" address="[email protected]" />--> 
      </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="[email protected]" /> 
       <!--<user name="David Ames" group="buildmaster" address="[email protected]" />--> 
       <!--<user name="David Ames" group="buildmaster" address="[email protected]" /> 
       <user name="HouTan" group="buildmaster" address="[email protected]" /> 
       <user name="MickHutchinson" group="buildmaster" address="[email protected]" /> 
       --> 
      </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> 

回答

1

只要在XML文件中包含格式良好的XML(它应该是)......的“吸取到的一切,在最build.xml文件能很好地工作的任务

既然你是新的,我会猜你可能没有目录设置正确

下载此工具:。

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

搜索你的“× xx.xml“........然后确保该任务的目录是正确的。你可以使用通配符作为文件名(如下所示),这就是我所做的。

<publishers> 
    <merge> 
     <files> 


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


     </files> 
    </merge> 
+0

转过来这是一个n00b问题。 XML正在生成并正在成功合并到我的最终XML文件中。但是,由于我没有为合并内容加载XSLT转换,因此没有任何内容显示在仪表板中。 – anton

+0

现在有道理!很高兴你解决了它。 – granadaCoder

相关问题