Создание сайта maven, включая отчет Cobertura

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

Ниже показано, что я добавил в 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?


person Trampas Kirk    schedule 27.02.2009    source источник


Ответы (6)


Следует сделать:

mvn site

Чтобы уточнить, запуск mvn a: b запускает цель b в подключаемом модуле a. Использование mvn c означает запуск фазы жизненного цикла c, на которой выполняются все связанные цели на всех этапах вплоть до c. В результате это вызовет гораздо больше событий (например, выполнение необходимой подготовки для создания отчетов Cobertura).

person Alex Miller    schedule 01.03.2009

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

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

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

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

Ссылки отчета работают с mvn site:run / mvn site:stage, а ссылки на модули - нет.

person Trampas Kirk    schedule 11.03.2009
comment
Вы должны зарегистрировать это как ошибку в системе отслеживания ошибок maven, иначе это не будет работать. - person André; 12.03.2009

mvn site

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

person André    schedule 27.02.2009

По моему опыту, ссылки на модули site: stage не работают и для многомодульных сборок, в отличие от site: deploy. Попробуй это:

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

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

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

person Dave Moten    schedule 11.10.2010

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

mvn site-deploy

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

person ScArcher2    schedule 27.02.2009
comment
Но я не хочу развертывать его на месте производства, я хочу сначала локальный предварительный просмотр, поскольку он все еще экспериментальный. - person Trampas Kirk; 28.02.2009

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

person MetroidFan2002    schedule 01.03.2009