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:
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user