Как запустить спотбаг через 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.stackru.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 не показывает мне никаких ошибок или ошибок. Как получить спот-багов для сканирования моего кода?

1 ответ

Решение

Используйте spotbugs-maven-plugin версии 3.1.0-RC6, тогда вы можете найти проблему по mvn spotbugs:spotbugs, Вы можете ссылаться на официальный документ в readthedocs.

В spotbugs:checkmojo по умолчанию запускается вverifyфаза жизненного цикла maven. Эта фаза расположена послеcompile а также package.

Чтобы запустить проверку на наличие ошибок, вызовите Maven с любым> = verify, например mvn verify или mvn install.

Вы также можете прикрепить плагин к другому этапу жизненного цикла, я полагаю, вот так:

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

Однако я не проверял это.

Для того, чтобы точечные ошибки запускались как часть 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> элемент.

Я бы также добавил, что полезный удобный метод для запуска Spotbugs в проекте без добавления чего-либо в pom:

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

Затем осмотрите target/spotbugsXml.xml.

Моя проблема возникла из-за неправильного перехода с Findbugs - см. https://spotbugs.readthedocs.io/en/stable/migration.html.

Кроме того, чтобы проверить, работают ли Spotbugs, вы можете просто запустить

mvn spotbugs: проверьте

И посмотрите, создается ли целевой файл \spotbugsXml.xml.

Другие вопросы по тегам