CruiseControl.Net «Обнаружен повторяющийся узел» с использованием прекомпилятора

Я работаю с CruiseControl.Net и пытаюсь применить сухой подход, как показано в статье http://www.zorched.net/2009/01/30/dry-your-cruisecontrolnet-configuration/ У меня есть простой ccnet.config и простой файл проекта Test-project.xml . Инструмент оценки конфигурации сообщает мне, что «Обнаружен повторяющийся узел». Любые подсказки / подсказки были бы замечательными.

Ccnet.config

<cruisecontrol  xmlns:cb="urn:ccnet.config.builder">
  <!-- Standard Inits -->
  <cb:define name="StandardInit-block">
    <webURL>http://localhost/ccnet-dashboard/?_action_ViewProjectReport=true&amp;server=local&amp;project=Introvert</webURL>
    <artifactDirectory>D:\CC\$(ProjName)\artifact\</artifactDirectory>
    <modificationDelaySeconds>120</modificationDelaySeconds>
  </cb:define>

  <!-- Trigger run weekly -->
  <!-- Vars $(TriggerTime), $(ProjName) -->
  <cb:define name="WeeklyBuild-block">
    <triggers>
      <scheduleTrigger time="$(TriggerTime)" buildCondition="ForceBuild" name="Nightly build at $(TriggerTime) for $(ProjName)">
        <weekDays>
          <weekDay>Monday</weekDay>
          <weekDay>Tuesday</weekDay>
          <weekDay>Wednesday</weekDay>
          <weekDay>Thursday</weekDay>
          <weekDay>Friday</weekDay>
        </weekDays>
      </scheduleTrigger>
    </triggers>
  </cb:define>

  <cb:include href="Test-project.xml" xmlns:cb="urn:ccnet.config.builder"/>
</cruisecontrol>

Test-project.xml

<project name="Test" xmlns:cb="urn:ccnet.config.builder">

    <cb:scope
      TriggerTime="2:30"
      ProjName="Test"
      ProjStarPath="" >

      <!-- Standard block -->
      <cb:StandardInit-block/>

      <!-- Trigger block -->
      <cb:WeeklyBuild-block/>

      <tasks></tasks>
      <publishers></publishers>

    </cb:scope>
  </project>


person Eric Brown - Cal    schedule 19.05.2009    source источник
comment
не могли бы вы выложить код других файлов? То, что находится в ‹cb: StandardInit-block /› и ‹cb: WeeklyBuild-block /›, может оказаться полезным. Кроме того, я предполагаю, что этот код, который вы разместили, включен в другой файл, можем ли мы это тоже увидеть?   -  person Pondidum    schedule 19.05.2009
comment
Оба файла включены, но форматирование первого файла менее желательно. Возможно, вы могли бы отредактировать его, чтобы он был отформатирован.   -  person Nick DeVore    schedule 19.05.2009
comment
Я пытаюсь понять, как отформатировать XML, чтобы он выглядел нормально, может намекает? Я попытался заключить все это в ‹code› ‹prep›, но, похоже, он все еще рассматривает это как разметку, а не код.   -  person Eric Brown - Cal    schedule 19.05.2009
comment
просто выберите весь xml и нажмите кнопку с двоичным файлом на панели инструментов   -  person Pondidum    schedule 19.05.2009


Ответы (3)


ccnet.config:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 

    <!-- Standard Inits --> 
    <cb:define name="StandardInit-block">

        <!--<webURL>http://localhost/ccnet-dashboard/?_action_ViewProjectReport=true&server=local&project=Introvert</webURL>-->
        <artifactDirectory>D:\CC\$(ProjName)\artifact\</artifactDirectory> 
        <modificationDelaySeconds>120</modificationDelaySeconds> 

    </cb:define>

    <!-- Trigger run weekly --> 

    <!-- Vars $(TriggerTime), $(ProjName) --> 
    <cb:define name="WeeklyBuild-block"> 

        <triggers> 
            <scheduleTrigger time="$(TriggerTime)" buildCondition="ForceBuild" name="Nightly build at $(TriggerTime) for $(ProjName)"> 
                <weekDays> 
                    <weekDay>Monday</weekDay> 
                    <weekDay>Tuesday</weekDay> 
                    <weekDay>Wednesday</weekDay> 
                    <weekDay>Thursday</weekDay> 
                    <weekDay>Friday</weekDay> 
                </weekDays>
            </scheduleTrigger> 
        </triggers> 

    </cb:define>

    <cb:include href="Test-project.xml" /> 

</cruisecontrol>

Test-project.xml:

<project name="Test" xmlns:cb="urn:ccnet.config.builder">

    <cb:scope
        TriggerTime="2:30"
        ProjName="Test"
        ProjStarPath="" >

    <!-- Standard block -->
    <cb:StandardInit-block/>

    <!-- Trigger block -->
    <cb:WeeklyBuild-block/>

    <tasks/>
    <publishers/>

    </cb:scope>
</project>

Я только что запустил эту партию через круиз-контроль на моем компьютере, и единственная проблема, с которой я столкнулся, - это URL-адрес в файле ccnet.config. удалите это, и код, который я вставил над этим текстом, работает нормально.

person Pondidum    schedule 19.05.2009
comment
Энди, я получил безнадежный xml, когда удалил xmlns: cb = urn: ccnet.config.builder. ‹Tag› ​​‹/tag› - это то же самое, что ‹tag /› в xml. Как называется начальный тег, на который вы ссылаетесь? Снова посмотрите на источник. Это намного читабельнее. - person Eric Brown - Cal; 19.05.2009
comment
Я удаляю упомянутую вами веб-строку, но все равно без радости. Я запускаю это на своей рабочей станции. Мой файл ccnet.config находится в C: \ Program Files \ CruiseControl.NET \ server. Мой test-project.xml находится в том же каталоге. Когда я запускаю CC, он говорит… Ни один загруженный тип не помечен атрибутом Reflectory Type, который соответствует узлу xml (#text). Возможно ли, что он не может найти файл xml? - person Eric Brown - Cal; 19.05.2009
comment
Вы используете последнюю версию CruiseControl? Я считаю, что тег ‹cb: scope› был добавлен сравнительно недавно. - person Pondidum; 20.05.2009
comment
Спасибо, Энди, вот и все, My CruiseControl был не последним. - person Eric Brown - Cal; 26.05.2009

Я также столкнулся с этой проблемой на этой неделе, так как решил использовать СУХОЙ подход для CruiseControl.

После запуска службы criusecontrol (а затем она быстро перестала работать) я просмотрел файл журнала (для меня C: \ CruiseControl.NET \ server \ ccnet.log ...) и увидел что-то вроде:

ThoughtWorks.CruiseControl.Core.Config.ConfigurationException: обнаружен повторяющийся узел: ... (остальная часть узла, вызывающего проблему)

Это, по крайней мере, дало мне представление о том, с чем у него проблемы.

person Community    schedule 20.05.2009
comment
Хаунди прав, если вы посмотрите в свои журналы, он скажет вам, что такое дублирующийся узел ... - person Alex; 21.05.2009

Не уверен, что размещение ваших xml-файлов здесь было недосмотром, но у вас нет окончания </project> в Test-project.xml.

person Nick DeVore    schedule 19.05.2009