如何通过 Maven 运行 发现错误?

How to run Spotbugs via Maven?

这是我的 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   
 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion> 

     <groupId>de.Whosebug.test</groupId>
     <artifactId>HelloWorld</artifactId>
     <version>1.0-SNAPSHOT</version>
     <packaging>jar</packaging> 
     <name>HelloWorld</name> 

     <dependencies>   
             <dependency>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-annotations</artifactId>
                <version>3.1.0-RC5</version>
                <optional>true</optional>
            </dependency>
     </dependencies>

     <build>        
        <plugins>
           <plugin>
           <groupId>com.github.hazendaz.spotbugs</groupId>
           <artifactId>spotbugs-maven-plugin</artifactId>
           <version>3.0.6</version>
           <dependencies>

           <dependency>
           <groupId>com.github.spotbugs</groupId>
           <artifactId>spotbugs</artifactId>
           <version>3.1.0-RC5</version>
           </dependency>
           </dependencies>
           </plugin>
        </plugins>
     </build>

mvn compilemvn packagemvn site 运行 没有任何问题。 构建成功。

该项目由一个 HelloWorld.java 组成,其中有一些错误。

mvn site 没有显示任何错误或错误。如何让 SpotBugs 扫描我的代码?

使用spotbugs-maven-plugin version 3.1.0-RC6, then you can find problem by mvn spotbugs:spotbugs. You may refer official document in readthedocs.

spotbugs:check mojo 运行 by default in the verify phase of the maven lifecycle。此阶段位于 compilepackage 之后。

要触发 spotbugs 检查,请使用 >= verify 的任何内容调用 Maven,例如 mvn verifymvn install.

您还可以将插件附加到另一个生命周期阶段,我想,就像这样:

<execution>
  <id>check</id>
  <phase>test</phase>
  <goals>
    <goal>check</goal>
  </goals>
</execution>

不过我还没有测试过。

我的问题是由于错误地从 Findbugs 迁移造成的 - 请参阅 https://spotbugs.readthedocs.io/en/stable/migration.html#for-spotbugs-users

此外,为了测试 spotbugs 是否正常工作,您可以 运行

mvn spotbugs:check

并查看是否生成了target\spotbugsXml.xml文件。

对于 运行 作为 mvn site 的一部分的 spotbug,您只需要确保插件位于 pom.xml:

<reporting> 部分
  <reporting>
    <plugins>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <version>4.0.4</version>
      </plugin>
    </plugins>
  </reporting>

<reporting> 元素与 <build> 元素处于同一级别。

我还要添加一个有用的方便方法 运行 spotbugs 在项目上没有添加任何东西到 pom 是:

mvn com.github.spotbugs:spotbugs-maven-plugin:spotbugs

然后检查target/spotbugsXml.xml.

有时更方便的是 gui 目标:

mvn com.github.spotbugs:spotbugs-maven-plugin:gui