8

这是我的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.stackoverflow.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 package并且mvn site运行没有任何问题。建立成功。

该项目由一个HelloWorld.java带有一些错误的单曲组成。

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

4

4 回答 4

9

使用spotbugs-maven-plugin version 3.1.0-RC6,然后您可以通过mvn spotbugs:spotbugs. 您可以参考readthedocs 中的官方文档

于 2017-10-18T04:06:32.303 回答
6

spotbugs:checkmojo默认maven 生命周期verify阶段运行。该阶段位于和之后。compilepackage

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

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

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

不过,我还没有测试过。

于 2019-12-09T07:19:56.267 回答
2

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

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

mvn 斑点:检查

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

于 2020-04-12T14:08:29.233 回答
2

要让 spotbugs 作为mvn site您的一部分运行,只需确保插件位于<reporting>pom.xml 的部分中:

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

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

我还要补充一点,在不向 pom 添加任何内容的情况下在项目上运行 spotbugs 的一种有用的便捷方法是:

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

然后检查target/spotbugsXml.xml

有时更方便的是 gui 目标:

mvn com.github.spotbugs:spotbugs-maven-plugin:gui
于 2020-09-24T09:34:05.727 回答