3

I use Gradle to build my Java project with the following settings to treat warnings as errors:

tasks.withType(JavaCompile) {
  options.compilerArgs << "-Xlint:unchecked" << "-Werror"
}

Now we would like to work on some experimental research stuff in a certain class (let's call it Experimental.java) which throws some warnings (warning: XYZ is internal proprietary API and may be removed in a future release). This leads to the problem that the whole project does not build.

Can we exclude a certain class from being checked based on -Werror (i.e., "don't check Experimental.java")? Or can we tell -Werror to ignore a certain warning (i.e., "don't treat internal proprietary API warning as error")? We don't want to turn off -Werror completely, other classes should still be treated that way.

Markus Weninger
  • 11,931
  • 7
  • 64
  • 137

1 Answers1

1

Thanks to this answer I came up with a solution.

First off, one has to add the compiler flag -XDenableSunApiLintControl and can then turn off "Sun internal warnings" using -Xlint:-sunapi.

My adjusted Gradle build file looks like the following:

tasks.withType(JavaCompile) {
  options.compilerArgs << "-XDenableSunApiLintControl" << "-Xlint:all" << "-Werror" << "-Xlint:-sunapi"
}
Markus Weninger
  • 11,931
  • 7
  • 64
  • 137