2009-02-27 2 views
7

У меня есть проекты, которые уже производят создание сайта через maven, и я хочу интегрировать в них отчеты cobertura, но ни одна цель maven, которую я, кажется, не запускает, будет генерировать локальный превью для я смотрю на это, включая отчеты Cobertura на сайте. Я хочу быть уверенным, что они генерируют правильно, прежде чем я совершу изменения pom в репо и сломал сайт.Создание сайта maven, включая отчет Cobertura

Ниже то, что я добавил к Maven POMS (родительскими и модуль), но на сайте я вижу, когда я бегу mvn site:run не включает в себя отчеты Cobertura:

команда
<project> 
... 
    <build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <configuration> 
       <check> 
        <haltOnFailure>false</haltOnFailure> 
        <regexes> 
         <regex> 
          <pattern>parent-package-name-here.*</pattern> 
          <branchRate>80</branchRate> 
          <lineRate>80</lineRate> 
         </regex> 
        </regexes> 
       </check> 
       <instrumentation> 
        <includes> 
         <include>parent-package-name-here/**/*.class</include> 
        </includes> 
       </instrumentation> 
      </configuration> 
      <executions> 
       <execution> 
        <id>clean</id> 
        <phase>pre-site</phase> 
        <goals> 
         <goal>clean</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>instrument</id> 
        <phase>site</phase> 
        <goals> 
         <goal>instrument</goal> 
         <goal>cobertura</goal> 
         <goal>check</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
... 
<reporting> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
</reporting> 
... 
</project> 

Что Maven я должен использовать создать сайт с сообщениями cobertura? Или, что я должен добавить (дополнительно), чтобы генерация сайта включала отчеты cobertura?

ответ

3

Я понял, как это сделать.

Кажется, что в генерации ссылок внутри плагина генерации сайта maven появилось много ошибок.

Единственный способ, с помощью которого maven создать локальную копию сайта с ссылками на рабочий модуль, - это изменить тег distributionManagement/site, чтобы указать на какой-либо локальный каталог вместо реального развертывания каталога, а затем использовать maven site:deploy.

Каждая попытка использования mvn site:stage создает неработающие ссылки. То же самое касается mvn site:run.

Отчет связывает работу с mvn site:run/mvn site:stage, но ссылки на модули этого не делают.

+2

Вы должны указать это как ошибку в трекер-контролере maven, иначе это не сработает. –

0

Мы используем

mvn site-deploy 

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

+0

Но я не хочу разворачивать его в своем «производственном» месте, сначала мне нужен локальный предварительный просмотр, поскольку это еще экспериментальный. –

1
mvn site 

должно делать то, что вы ищете. Вы настраиваете плагин для работы на этапах на сайте и на сайте жизненного цикла, но затем выполняете сайт: запустите цель, а не сайт. Мы делаем похожие вещи с клевером (инструмент коммерческого покрытия), а сайт mvn делает трюк.

3

должны сделать:

mvn site 

Для разработки, запуска MVN а: б запускает цель B в плагин а. Высказывание mvn c означает запуск фазы жизненного цикла c, которая управляет всеми связанными целями во всех фазах до c. В результате это вызовет гораздо больше вещей, которые могут произойти (например, сделать необходимую подготовку для подготовки отчетов cobertura).

0

mvn site:site должен производить то, что вам нужно, в целевом каталоге будет каталог сайта, содержащий все отчеты, связанные с index.html в этом каталоге.

1

сайт: ссылки на модульные модули не работают в моем опыте либо для создания нескольких модулей, но для сайта: deploy. Попробуйте следующее:

Используйте свойство для URL-адреса сайта в родительском помпе, например. ${site.url}.Затем вызовите этот

mvn clean site site:deploy -Dsite.url=file://`pwd`/target/site-deployed 

pwd является -nix команда, которая заменит текущий каталог. Это связано с тем, что используемый вами URL должен быть абсолютным.

Смежные вопросы