我正在尝试将Maven Spotbugs插件集成到我的项目的pom.xml文件中,并使其在运行“mvn site”命令后在“Project Reports”部分生成报告。我能够生成其他报告,例如PMD,CPD和Xref,但Spotbugs给我带来了很多麻烦。命令行指出报告已成功配置,但从不生成。我有似乎所有必需的依赖项,构建和报告配置。我已经尝试过Spotbugs github网站,SpotBugs文档,多个论坛和教程的各种解决方案,似乎没有什么能解决我的问题。
有没有人能够详细介绍如何通过pom文件整合Spotbugs Maven插件?我是Maven的新手,可以使用一些帮助!如果我需要包含任何文件,请告诉我。
答案 0 :(得分:2)
我按照spotbugs.readthedocs.io的指示行事。将此部分添加到pom.xml
。
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>3.1.3</version>
<dependencies>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>3.1.3</version>
</dependency>
</dependencies>
</plugin>
然后我运行mvn spotbugs:spotbugs
并生成projectDir/target/spotbugsXml.xml
。然后我运行mvn spotbugs:check
并输出
[INFO] --- spotbugs-maven-plugin:3.1.3:check (default-cli) @ my-project ---
[INFO] BugInstance size is 0
[INFO] Error size is 0
[INFO] No errors/warnings found
[INFO] --------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] --------------------------------------------------------------------
[INFO] Total time: 6.731 s
[INFO] Finished at: 2018-05-25T16:31:35-04:00
[INFO] --------------------------------------------------------------------
更新 - 我必须将它添加到project / reporting / plugins部分以及构建部分。现在,当我运行mvn site
时,它会在Project Reports
中生成包含SpotBug的target/site/index.html
部分。
<reporting>
<plugins>
<!-- SpotBugs -->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>3.1.3</version>
</plugin>
</plugins>
</reporting>
答案 1 :(得分:2)
解决了 - 斑点狗要求我在出于某种原因之前包括所有必需的配置。我认为在pom的报告部分添加以下内容之后它起了作用:
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Default</threshold>
<spotbugsXmlOutput>true</spotbugsXmlOutput>
<spotbugsXmlOutputDirectory>target/site</spotbugsXmlOutputDirectory>
<skipEmptyReport>false</skipEmptyReport>
<encoding>${project.build.sourceEncoding}</encoding>
<includeTests>true</includeTests>
<classFilesDirectory>${project.build.outputDirectory}</classFilesDirectory>
<spotbugs.xmlOutput>true</spotbugs.xmlOutput>
<plugins>
<plugin>
<groupId>jp.skypencil.findbugs.slf4j</groupId>
<artifactId>bug-pattern</artifactId>
<version>1.4.0</version>
</plugin>
</plugins>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>spotbugs</report>
</reports>
</reportSet>
</reportSets>
</plugin>
答案 2 :(得分:0)
偶然发现同一问题,@ Mack的解决方案对我不起作用。
对我来说,最终的解决方案是首先创建类文件。
所以不是
mvn site
至少一个
mvn compile site
是创建报告所必需的。