如何通过 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 compile
、mvn package
和 mvn 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。此阶段位于 compile
和 package
之后。
要触发 spotbugs 检查,请使用 >= verify
的任何内容调用 Maven,例如 mvn verify
或 mvn 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
这是我的 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 compile
、mvn package
和 mvn 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。此阶段位于 compile
和 package
之后。
要触发 spotbugs 检查,请使用 >= verify
的任何内容调用 Maven,例如 mvn verify
或 mvn 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