Support Gradle 6.0
Previously, our Gradle plugin was not tested against Gradle 6.0, a number of deprecation warnings were output when using the plugin with Gradle 6, and some functionality related to the application plugin did not work as expected. This commit tests the plugin against Gradle 6. It also avoids calling deprecated APIs. The plugin is compatibile against Gradle 4.10 where the deprecated APIs' replacements are not available so reflection is used to call the replcaements. Lastly, the way in which the base name of the boot distribution that is created when the application plugin is applied has been modified to ensure that it is effective when using Gradle 6. Closes gh-18663
This commit is contained in:
@@ -39,7 +39,7 @@ import org.springframework.boot.gradle.testkit.GradleBuildExtension;
|
||||
public final class GradleCompatibilityExtension implements TestTemplateInvocationContextProvider {
|
||||
|
||||
private static final List<String> GRADLE_VERSIONS = Arrays.asList("default", "5.0", "5.1.1", "5.2.1", "5.3.1",
|
||||
"5.4.1", "5.5.1", "5.6.4");
|
||||
"5.4.1", "5.5.1", "5.6.4", "6.0");
|
||||
|
||||
@Override
|
||||
public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext context) {
|
||||
|
||||
@@ -20,7 +20,8 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.plugins.ExtraPropertiesExtension;
|
||||
import org.gradle.api.plugins.ApplicationPlugin;
|
||||
import org.gradle.api.plugins.JavaApplication;
|
||||
import org.gradle.testfixtures.ProjectBuilder;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -51,9 +52,10 @@ class MainClassConventionTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
void mainClassNameProjectPropertyIsUsed() throws Exception {
|
||||
this.project.getExtensions().getByType(ExtraPropertiesExtension.class).set("mainClassName",
|
||||
"com.example.MainClass");
|
||||
void javaApplicationExtensionMainClassNameIsUsed() throws Exception {
|
||||
this.project.getPlugins().apply(ApplicationPlugin.class);
|
||||
JavaApplication extension = this.project.getExtensions().findByType(JavaApplication.class);
|
||||
extension.setMainClassName("com.example.MainClass");
|
||||
assertThat(this.convention.call()).isEqualTo("com.example.MainClass");
|
||||
}
|
||||
|
||||
@@ -67,8 +69,9 @@ class MainClassConventionTests {
|
||||
|
||||
@Test
|
||||
void springBootExtensionMainClassNameIsUsedInPreferenceToMainClassNameProjectProperty() throws Exception {
|
||||
this.project.getExtensions().getByType(ExtraPropertiesExtension.class).set("mainClassName",
|
||||
"com.example.ProjectPropertyMainClass");
|
||||
this.project.getPlugins().apply(ApplicationPlugin.class);
|
||||
JavaApplication javaApplication = this.project.getExtensions().findByType(JavaApplication.class);
|
||||
javaApplication.setMainClassName("com.example.JavaApplicationMainClass");
|
||||
SpringBootExtension extension = this.project.getExtensions().create("springBoot", SpringBootExtension.class,
|
||||
this.project);
|
||||
extension.setMainClassName("com.example.SpringBootExtensionMainClass");
|
||||
|
||||
Reference in New Issue
Block a user