Имам простия код по-долу за тестване на анотацията findbugs NonNull с maven.
Изпълнявам "mvn clean install site" и получавам директория target/site/css и target/site/images, но нищо повече. Очаквах да получа отчет, който казва, че println(null) нарушава условието NonNull.
Какво трябва да направя, за да получа този отчет?
Освен това, има ли начин да се предотврати успехът на "mvn clean install", ако има нарушения на NonNull?
Забележка: Наясно съм, че мога да получа такъв отчет със Sonar; Въпреки това бих искал „mvn clean install“ да се провали, ако има такива грешки, без да е необходимо след това да се използва допълнителен инструмент Sonar.
src/main/java/test/Hello.java
package test;
import edu.umd.cs.findbugs.annotations.NonNull;
public class Hello {
static public void print(@NonNull Object value) {
System.out.println("value: " + value.toString());
}
static public void main(String[] args) {
if (args.length > 0) {
print(args[0]);
} else {
print(null);
}
}
}
и файла pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>hello</groupId>
<artifactId>hello</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>net.sourceforge.findbugs</groupId>
<artifactId>annotations</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>net.sourceforge.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>1.3.7</version>
</dependency>
</dependencies>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</plugins>
</reporting>
</project>
---
Актуализация, решение
решение, базирано на отговора от Аугусто: Добавете това към файла pom.xml под проект:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<includeTests>true</includeTests>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
<execution>
<id>findbugs-test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
С това "mvn clean install" ще се провали, ако има нарушение на NonNull.
Докладването не работеше за мен, защото използвам maven 3 и функцията за отчитане се промени в maven 3 (сега използва нормален плъгин за maven)