Unable to find Log Publisher for project on CCNET
I recently started a project and I'm currently trying to configure the ccnet.config
file.
The fact is I can't find out why CruiseControl can't find the log file.
I guess it is something easy and I'm doing something wrong, after 4 days, I'm able to find a solution.
I get the next error message in 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)
As i told you, i guess something's wrong with my config file, the one is as follows:
<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>
My .sln
file is located at "Source directory".
I was searching but can't find anything about this. Also I'm using nant
and svn
as you can see.
You are missing the XML Log Publisher inside the publishers block. As it is stated in the documentation (.../CruiseControl.NET/webdashboard/doc/CCNET/Xml Log Publisher.html, the online docs seem to be down currently), it is required for the dashboard to function properly. The publishers block contains it by default so you only have to add it when you include the publishers block in your project.
Try modifying your publishers block as follows, it should help:
<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>
精彩评论