Не удалось найти Log Publisher для проекта в CCNET - PullRequest
4 голосов
/ 15 февраля 2011

Я недавно запустил проект и сейчас пытаюсь настроить файл ccnet.config.

Дело в том, что я не могу выяснить, почему 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 файл находится в «Исходном каталоге».

Я искал, но ничего не могу найти по этому поводу. Также я использую nant и svn, как вы можете видеть.

1 Ответ

4 голосов
/ 17 февраля 2011

Вам не хватает XML Log Publisher внутри блока издателей. Как указано в документации (... / 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>
...