Tighten rules with compiler warnings

This commit configures the Java compiler to break the build in case of
the following warnings:

* Calling deprecated code
* Use of unchecked and raw types
* Incorrect use of varargs

Closes gh-1537
This commit is contained in:
Stéphane Nicoll
2025-04-19 11:49:20 +02:00
parent b98055139a
commit 514abecc7e
2 changed files with 23 additions and 1 deletions

View File

@@ -16,6 +16,8 @@
package org.springframework.ws.gradle.conventions;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import io.spring.javaformat.gradle.SpringJavaFormatPlugin;
@@ -28,6 +30,7 @@ import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.plugins.JavaPluginExtension;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.bundling.Jar;
import org.gradle.api.tasks.compile.JavaCompile;
import org.gradle.api.tasks.testing.Test;
import org.gradle.jvm.toolchain.JavaLanguageVersion;
@@ -42,6 +45,7 @@ class JavaPluginConventions {
void apply(Project project) {
project.getPlugins().apply(SpringJavaFormatPlugin.class);
configureJavaConventions(project);
JavaPluginExtension java = project.getExtensions().getByType(JavaPluginExtension.class);
enableSourceAndJavadocJars(java);
configureSourceAndTargetCompatibility(java);
@@ -52,7 +56,22 @@ class JavaPluginConventions {
configureJUnitPlatform(project);
}
private void configureJavaConventions(Project project) {
project.getTasks().withType(JavaCompile.class, (compile) -> {
compile.getOptions().setEncoding("UTF-8");
List<String> args = compile.getOptions().getCompilerArgs();
if (!args.contains("-parameters")) {
args.add("-parameters");
}
boolean buildWithJava17 = !project.hasProperty("toolchainVersion")
&& JavaVersion.current() == JavaVersion.VERSION_17;
if (buildWithJava17) {
args.addAll(Arrays.asList("-Werror", "-Xlint:unchecked", "-Xlint:deprecation", "-Xlint:rawtypes",
"-Xlint:varargs"));
}
});
project.getDependencies().add("compileOnly", "com.google.code.findbugs:jsr305");
}
private void enableSourceAndJavadocJars(JavaPluginExtension java) {
java.withSourcesJar();
@@ -106,6 +125,7 @@ class JavaPluginConventions {
private void configureJUnitPlatform(Project project) {
project.getTasks().withType(Test.class).configureEach((task) -> task.useJUnitPlatform());
project.getDependencies().add("testImplementation", "org.apiguardian:apiguardian-api");
project.getDependencies().add("testRuntimeOnly", "org.junit.platform:junit-platform-launcher");
}

View File

@@ -17,6 +17,7 @@ dependencies {
api(platform("org.springframework.security:spring-security-bom:6.3.9-SNAPSHOT"))
constraints {
api("com.fasterxml.woodstox:woodstox-core:6.5.1")
api("com.google.code.findbugs:jsr305:3.0.2")
api("com.icegreen:greenmail:2.0.1")
api("com.icegreen:greenmail-junit5:2.0.1")
api("com.icegreen:greenmail-spring:2.0.1")
@@ -39,6 +40,7 @@ dependencies {
api("org.apache.santuario:xmlsec:3.0.4")
api("org.apache.wss4j:wss4j-ws-security-dom:2.4.3")
api("org.apache.ws.xmlschema:xmlschema-core:2.3.1")
api("org.apiguardian:apiguardian-api:1.1.2")
api("org.aspectj:aspectjrt:1.9.22")
api("org.aspectj:aspectjweaver:1.9.22")
api("org.assertj:assertj-core:3.25.3")