Skip to content

Commit a2acc0b

Browse files
feat(build): add optional Error Prone and NullAway checking (#6613)
1 parent 96a3d8e commit a2acc0b

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

‎build.gradle.kts‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
import net.ltgt.gradle.errorprone.errorprone
2+
13
plugins {
24
alias(libs.plugins.fabric.loom)
35
id("maven-publish")
6+
alias(libs.plugins.errorprone)
47
}
58

69
val archivesBaseName = providers.gradleProperty("archives_base_name").get()
710
val mavenGroup = providers.gradleProperty("maven_group").get()
11+
val runErrorProne = providers.gradleProperty("errorprone").isPresent
812

913
base {
1014
archivesName = archivesBaseName
@@ -98,6 +102,10 @@ dependencies {
98102
exclude("com.google.code.gson")
99103
exclude("com.google.errorprone")
100104
}
105+
106+
// Error Prone
107+
errorprone(libs.errorprone.core)
108+
errorprone(libs.nullaway)
101109
}
102110

103111
java {
@@ -211,6 +219,18 @@ tasks {
211219
"-Xlint:unchecked"
212220
)
213221
)
222+
223+
options.errorprone.enabled.set(runErrorProne)
224+
225+
if (runErrorProne) {
226+
options.errorprone {
227+
check("NullAway", net.ltgt.gradle.errorprone.CheckSeverity.ERROR)
228+
option("NullAway:AnnotatedPackages", "meteordevelopment.meteorclient")
229+
option("NullAway:JSpecifyMode", "true")
230+
// Event handlers are discovered reflectively by Orbit.
231+
option("UnusedMethod:ExcludedAnnotations", "meteordevelopment.orbit.EventHandler")
232+
}
233+
}
214234
}
215235

216236
javadoc {

‎gradle/libs.versions.toml‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ fabric-api = "0.154.2+26.2"
88
# Plugins
99
# Loom (https://github.com/FabricMC/fabric-loom)
1010
loom = "1.17-SNAPSHOT"
11+
# Error Prone Plugin (https://github.com/tbroyer/gradle-errorprone-plugin)
12+
errorprone-plugin = "5.1.1"
1113

1214
# Mods
1315
# Baritone (https://github.com/MeteorDevelopment/baritone)
@@ -37,6 +39,12 @@ waybackauthlib = "1.1.0"
3739
# MinecraftAuth (https://github.com/RaphiMC/MinecraftAuth)
3840
minecraftauth = "5.0.2"
3941

42+
# Libraries
43+
# Error Prone (https://github.com/google/error-prone)
44+
errorprone = "2.50.0"
45+
# NullAway (https://github.com/uber/NullAway)
46+
nullaway = "0.14.0"
47+
4048
[libraries]
4149
# Fabric base
4250
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
@@ -60,6 +68,9 @@ netty-handler-proxy = { module = "io.netty:netty-handler-proxy", version.ref = "
6068
netty-codec-socks = { module = "io.netty:netty-codec-socks", version.ref = "netty" }
6169
waybackauthlib = { module = "de.florianreuth:waybackauthlib", version.ref = "waybackauthlib" }
6270
minecraft-auth = { module = "net.raphimc:MinecraftAuth", version.ref = "minecraftauth" }
71+
errorprone-core = { module = "com.google.errorprone:error_prone_core", version.ref = "errorprone" }
72+
nullaway = { module = "com.uber.nullaway:nullaway", version.ref = "nullaway" }
6373

6474
[plugins]
6575
fabric-loom = { id = "net.fabricmc.fabric-loom", version.ref = "loom" }
76+
errorprone = { id = "net.ltgt.errorprone", version.ref = "errorprone-plugin" }

0 commit comments

Comments
 (0)