Я пытаюсь интегрировать FindBugs в проект maven. У кого-нибудь есть образец pom.xml
, генерирующий простой отчет HTML-поиска в целевой программе? Возможно ли создать этот отчет без запуска site:site
?
Любой простой способ генерировать HTML-отчет Findbug от Maven без сайта: сайт?
Ответ 1
Отъезд Sonar. Это автономный веб-сервис с открытым исходным кодом, на который вы "отправляете" свой код, и он создает красивые HTML-отчеты по всем типам метрик кода. Он также хранит историю сборок. И, самое главное, вам не нужно изменять свои сборки или помпы!
Для него тоже есть цель maven: sonar:sonar
. Jenkins (ранее Hudson) имеет плагин для него, поэтому он абсолютно безболезнен, если вы используете его для своего CI.
Проверьте это - вы не пожалеете!
Ответ 2
Findbugs jar содержит 5 преобразований XSLT, которые могут быть использованы для преобразования трудночитаемого XML в простой для чтения HTML, поэтому мы можем использовать плагин xml-maven-plugin для выполнения преобразования, и вот конфигурация:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.4.0</version>
<executions>
<execution>
<id>findbug</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<findbugsXmlOutputDirectory>
${project.build.directory}/findbugs
</findbugsXmlOutputDirectory>
<failOnError>false</failOnError>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xml-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>transform</goal>
</goals>
</execution>
</executions>
<configuration>
<transformationSets>
<transformationSet>
<dir>${project.build.directory}/findbugs</dir>
<outputDir>${project.build.directory}/findbugs</outputDir>
<stylesheet>fancy-hist.xsl</stylesheet>
<!--<stylesheet>default.xsl</stylesheet>-->
<!--<stylesheet>plain.xsl</stylesheet>-->
<!--<stylesheet>fancy.xsl</stylesheet>-->
<!--<stylesheet>summary.xsl</stylesheet>-->
<fileMappers>
<fileMapper
implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
<targetExtension>.html</targetExtension>
</fileMapper>
</fileMappers>
</transformationSet>
</transformationSets>
</configuration>
<dependencies>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>findbugs</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
Чтобы получить отчет, просто выполните mvn clean install
.
Вышеприведенный фрагмент кода содержит все 5 возможных преобразований, поэтому попробуйте их все, и, надеюсь, вы найдете тот, который вам нравится.
Я попробовал это с maven 3 и Finbugs 2.0