Создание сайта maven, включая отчет Cobertura - PullRequest
7 голосов
/ 28 февраля 2009

У меня есть несколько проектов, которые уже генерируют сайты с помощью 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?

Ответы [ 6 ]

3 голосов
/ 11 марта 2009

Я разобрался, как это сделать.

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

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

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

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

3 голосов
/ 01 марта 2009

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

mvn site

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

1 голос
/ 11 октября 2010

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

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

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

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

1 голос
/ 28 февраля 2009
mvn site

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

0 голосов
/ 01 марта 2009

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

0 голосов
/ 28 февраля 2009

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

mvn site-deploy

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

...