It's deprecated now and won't be supported anymore. If you want to use this type of analysis in your project then use the iwillfailyou.com
It is the service for analysing your project contains or not the null
literal.
With Nullfree you can add a badge to your project which looks like
, if your project
does not contain null
, else if project contains at least one null
it will looks like
. There's even more, Nullfree will fail project
build, if it contains a null.
Based on statistics from Overops
NullPointerException
is at the top of all exceptions in Java apps.
It's simple: if there is no one null
in a codebase, then
NullPointerException
will be gone. Let's stop using null
!
Add the Nullfree plugin:
plugins {
id 'com.nikialeksey.nullfree' version '1.5.1'
}
Invoke it:
./gradlew nullfree
Add the Nullfree plugin:
<plugin>
<groupId>com.nikialeksey</groupId>
<artifactId>nullfree-maven-plugin</artifactId>
<version>1.5.1</version>
</plugin>
Invoke it:
mvn nullfree:nullfree
Add your nullfree badge to the project readme:
![nullfree status](https://iwillfailyou.com/nullfree/<your nickname>/<your repo>)
You can suppress any null by @SuppressWarnings("nullfree")
annotation:
@SuppressWarnings("nullfree")
class A {
private final String a = null;
}
Method, field, variable suppresses are all available as well.
Sometimes (usually in integrations with foreign libraries) it have to use null in comparisions:
if (some != null) { ... }
if (other == null) { ... }
It's ok, if you use it, NullPointerException
does not throw in this place, so you can add option to Nullfree
plugin for skipping such nulls:
nullfree {
skipComparisions = true
}
<plugin>
<groupId>com.nikialeksey</groupId>
<artifactId>nullfree-maven-plugin</artifactId>
<version>1.5.1</version>
<configuration>
<skipComparisions>true</skipComparisions>
</configuration>
</plugin>
You can the nulls threshold to allow project has a few nulls, but there would be only few.
nullfree {
threshold = 5
}
<plugin>
<groupId>com.nikialeksey</groupId>
<artifactId>nullfree-maven-plugin</artifactId>
<version>1.5.1</version>
<configuration>
<threshold>5</threshold>
</configuration>
</plugin>
You could use nullfree without badge and external service
https://iwillfailyou.com/nullfree/
with offline
mode
nullfree {
offline = true
}
<plugin>
<groupId>com.nikialeksey</groupId>
<artifactId>nullfree-maven-plugin</artifactId>
<version>1.5.1</version>
<configuration>
<offline>true</offline>
</configuration>
</plugin>
1.4.3
- Suppress works with overrides
1.4.2
- Support all (from 1 to 12) java version syntax when parsing nulls
1.4.1
- Parsing error tips in exception message
1.4.0
- Threshold for nulls count
1.3.0
- Send null descriptions to the API instead of badge url
1.2.0
- Fail build if it contains a null
1.1.0
- Skip nulls in comparisions expressions ability
1.0.0
- Changed API of nullfree lib, null suppression ability
0.0.2
- First version of service and plugin, self checking nullfree badge