2011-02-15 38 views
4

我最近启动了一个项目,目前正在尝试配置ccnet.config文件。无法在CCNET上找到项目的日志发布者

事实是我找不到为什么CruiseControl无法找到日志文件。

我想这很容易,我做错了,4天后,我能找到解决方案。

我在CCNET得到一个错误信息:

ThoughtWorks.CruiseControl.Remote.CommunicationsException: Request processing has failed on the remote server: Unable to find Log Publisher for project so can't find log file at 
ThoughtWorks.CruiseControl.Remote.CruiseServerClient.ValidateResponse(Response response) at 
ThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetMostRecentBuildNames(String projectName, Int32 buildCount) at 
ThoughtWorks.CruiseControl.WebDashboard.ServerConnection.ServerAggregatingCruiseManagerWrapper.GetMostRecentBuildSpecifiers(IProjectSpecifier projectSpecifier, Int32 buildCount, String sessionToken) at ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport.ProjectReportProjectPlugin.Execute(ICruiseRequest cruiseRequest) at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ServerCheckingProxyAction.Execute(ICruiseRequest cruiseRequest) at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ProjectCheckingProxyAction.Execute(ICruiseRequest cruiseRequest) at 
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionProxyAction.Execute(IRequest request) at 
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ExceptionCatchingActionProxy.Execute(IRequest request) 

正如我告诉你,我猜有什么地方错了我的配置文件,一个是如下:

<cruisecontrol> 
    <project name="Myproject" queue="MyprojectQueue" queuePriority="1"> 
    <webURL>http://localhost:80/ccnet/</webURL> 
    <workingDirectory>C:\Projects\Myproject\trunk\Source\</workingDirectory> 
    <artifactDirectory>C:\Projects\Myproject\trunk\Build\Log\</artifactDirectory> 
    <sourcecontrol type="svn"> 
     <trunkUrl>https://localhost/svn/Myproject.com/trunk</trunkUrl> 
     <workingDirectory>E:\Repositories\Myproject.com</workingDirectory> 
     <executable>C:\Program Files\VisualSVN Server\bin\svn.exe</executable> 
     <username>myusername</username> 
     <password>mypassword</password> 
     <timeout>60000</timeout> 
    </sourcecontrol> 
    <tasks> 
     <artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="5" /> 
     <modificationWriter> 
     <filename>mods.xml</filename> 
     <path></path> 
     </modificationWriter> 
    </tasks> 
    <triggers> 
     <intervalTrigger name="SVN" seconds="10" buildCondition="IfModificationExists" /> 
    </triggers> 
    <labeller type="defaultlabeller">  
     <prefix>0.1.</prefix> 
     <incrementOnFailure>true</incrementOnFailure> 
     <labelFormat>000</labelFormat> 
    </labeller> 
    <state type="state" directory="State" /> 

    <tasks> 
     <nant> 
     <executable>C:\Projects\Myproject\trunk\Binaries\NAnt\bin\nant.exe</executable> 
     <baseDirectory>C:\Projects\Myproject\trunk\Binaries\NAnt\</baseDirectory> 
     <buildArgs>-D:svn.executable="C:\Program Files\VisualSVN Server\bin\svn.exe"</buildArgs> 
     <nologo>false</nologo> 
     <buildFile>C:\Projects\Myproject\trunk\Source\Myproject.build</buildFile> 
     <logger>SourceForge.NAnt.XmlLogger</logger> 
     <buildTimeoutSeconds>1200</buildTimeoutSeconds> 
     <targetList> 
      <target>cruise</target> 
     </targetList> 
     </nant> 
    </tasks> 

    <publishers> 
     <buildpublisher> 
     <sourceDir>C:\Projects\Myproject\trunk\Build</sourceDir> 
     <publishDir>C:\Projects\Myproject\trunk\Build</publishDir> 
     <useLabelSubDirectory>true</useLabelSubDirectory> 
     </buildpublisher> 
     <merge> 
     <files> 
      <file>reports\devenv.log</file> 
      <file>reports\*-nunit.xml</file> 
      <file>reports\*-Coverage.xml</file> 
     </files> 
     </merge> 
    </publishers> 
    </project> 
</cruisecontrol> 

.sln文件位于“源目录”。

我正在寻找,但找不到任何关于此。正如你所看到的,我正在使用nantsvn

+0

您正在使用什么版本的CCNET的? – 2011-02-16 19:24:39

回答

4

您缺少发布者模块中的XML日志发布者。正如它在文档中所述(.../CruiseControl.NET/webdashboard/doc/CCNET/Xml Log Publisher.html,联机文档似乎目前处于关闭状态),仪表板正常运行需要它。发布商模块默认包含它,因此您只需在发布商模块中包含项目时添加它即可。

尝试修改您的发布封锁如下,它应该帮助:

<publishers> 
    <buildpublisher> 
    <sourceDir>C:\Projects\Myproject\trunk\Build</sourceDir> 
    <publishDir>C:\Projects\Myproject\trunk\Build</publishDir> 
    <useLabelSubDirectory>true</useLabelSubDirectory> 
    </buildpublisher> 
    <merge> 
    <files> 
     <file>reports\devenv.log</file> 
     <file>reports\*-nunit.xml</file> 
     <file>reports\*-Coverage.xml</file> 
    </files> 
    </merge> 
    <xmllogger /> 
</publishers> 
+0

谢谢达米尔,我实际上开发我的网站开心,没有痛苦。我发现了很多信息,但对于可以用ccnet进行实验的麻烦并没有真正的确切信息。所以,最后我发现让它工作的唯一方法是花费几个小时来搞定系统,每次进行更改时重新启动池等等。 – Joseph 2011-02-27 10:18:47

相关问题