|
|
|
|
@ -64,7 +64,6 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
@@ -64,7 +64,6 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
|
|
|
|
|
* plugin is applied: |
|
|
|
|
* |
|
|
|
|
* <ul> |
|
|
|
|
* <li>{@code sourceCompatibility} is set to {@code 1.8} |
|
|
|
|
* <li>{@link SpringJavaFormatPlugin Spring Java Format}, {@link CheckstylePlugin |
|
|
|
|
* Checkstyle}, {@link TestFailuresPlugin Test Failures}, and {@link TestRetryPlugin Test |
|
|
|
|
* Retry} plugins are applied |
|
|
|
|
@ -79,8 +78,12 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
@@ -79,8 +78,12 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
|
|
|
|
|
* {@link JavaPlugin} applied |
|
|
|
|
* <li>{@link JavaCompile}, {@link Javadoc}, and {@link FormatTask} tasks are configured |
|
|
|
|
* to use UTF-8 encoding |
|
|
|
|
* <li>{@link JavaCompile} tasks are configured to use {@code -parameters} and, when |
|
|
|
|
* compiling with Java 8, to: |
|
|
|
|
* <li>{@link JavaCompile} tasks are configured: |
|
|
|
|
* <ul> |
|
|
|
|
* <li>to use {@code -parameters} |
|
|
|
|
* <li>with source and target compatibility of 1.8 |
|
|
|
|
* </ul> |
|
|
|
|
* <li>When building with Java 8, {@link JavaCompile} tasks are also configured to: |
|
|
|
|
* <ul> |
|
|
|
|
* <li>Treat warnings as errors |
|
|
|
|
* <li>Enable {@code unchecked}, {@code deprecation}, {@code rawtypes}, and {@code varags} |
|
|
|
|
@ -107,11 +110,12 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
@@ -107,11 +110,12 @@ import org.springframework.boot.build.toolchain.ToolchainPlugin;
|
|
|
|
|
*/ |
|
|
|
|
class JavaConventions { |
|
|
|
|
|
|
|
|
|
private static final String SOURCE_AND_TARGET_COMPATIBILITY = "1.8"; |
|
|
|
|
|
|
|
|
|
void apply(Project project) { |
|
|
|
|
project.getPlugins().withType(JavaBasePlugin.class, (java) -> { |
|
|
|
|
project.getPlugins().apply(TestFailuresPlugin.class); |
|
|
|
|
configureSpringJavaFormat(project); |
|
|
|
|
project.setProperty("sourceCompatibility", "1.8"); |
|
|
|
|
configureJavaCompileConventions(project); |
|
|
|
|
configureJavadocConventions(project); |
|
|
|
|
configureTestConventions(project); |
|
|
|
|
@ -137,7 +141,7 @@ class JavaConventions {
@@ -137,7 +141,7 @@ class JavaConventions {
|
|
|
|
|
jar.manifest((manifest) -> { |
|
|
|
|
Map<String, Object> attributes = new TreeMap<>(); |
|
|
|
|
attributes.put("Automatic-Module-Name", project.getName().replace("-", ".")); |
|
|
|
|
attributes.put("Build-Jdk-Spec", project.property("sourceCompatibility")); |
|
|
|
|
attributes.put("Build-Jdk-Spec", SOURCE_AND_TARGET_COMPATIBILITY); |
|
|
|
|
attributes.put("Built-By", "Spring"); |
|
|
|
|
attributes.put("Implementation-Title", |
|
|
|
|
determineImplementationTitle(project, sourceJarTaskNames, javadocJarTaskNames, jar)); |
|
|
|
|
@ -194,8 +198,8 @@ class JavaConventions {
@@ -194,8 +198,8 @@ class JavaConventions {
|
|
|
|
|
private void configureJavaCompileConventions(Project project) { |
|
|
|
|
project.getTasks().withType(JavaCompile.class, (compile) -> { |
|
|
|
|
compile.getOptions().setEncoding("UTF-8"); |
|
|
|
|
compile.setSourceCompatibility("1.8"); |
|
|
|
|
compile.setTargetCompatibility("1.8"); |
|
|
|
|
compile.setSourceCompatibility(SOURCE_AND_TARGET_COMPATIBILITY); |
|
|
|
|
compile.setTargetCompatibility(SOURCE_AND_TARGET_COMPATIBILITY); |
|
|
|
|
List<String> args = compile.getOptions().getCompilerArgs(); |
|
|
|
|
if (!args.contains("-parameters")) { |
|
|
|
|
args.add("-parameters"); |
|
|
|
|
|