Build with Gradle 7.5 while still supporting Gradle 6.8+
Closes gh-32281
This commit is contained in:
parent
6d0a504283
commit
78f4242e46
@ -38,3 +38,7 @@ allprojects {
|
||||
resolutionStrategy.cacheChangingModulesFor 0, "minutes"
|
||||
}
|
||||
}
|
||||
|
||||
tasks.named("checkstyleNohttp").configure {
|
||||
maxHeapSize = "1g"
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -22,7 +22,6 @@ import org.gradle.api.attributes.Usage;
|
||||
import org.gradle.api.component.AdhocComponentWithVariants;
|
||||
import org.gradle.api.component.ConfigurationVariantDetails;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.publish.PublishingExtension;
|
||||
import org.gradle.api.publish.VariantVersionMappingStrategy;
|
||||
@ -115,9 +114,8 @@ class MavenPublishingConventions {
|
||||
*/
|
||||
private void addMavenOptionalFeature(Project project) {
|
||||
JavaPluginExtension extension = project.getExtensions().getByType(JavaPluginExtension.class);
|
||||
JavaPluginConvention convention = project.getConvention().getPlugin(JavaPluginConvention.class);
|
||||
extension.registerFeature("mavenOptional",
|
||||
(feature) -> feature.usingSourceSet(convention.getSourceSets().getByName("main")));
|
||||
(feature) -> feature.usingSourceSet(extension.getSourceSets().getByName("main")));
|
||||
AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants) project.getComponents()
|
||||
.findByName("java");
|
||||
javaComponent.addVariantsFromConfiguration(
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -24,7 +24,7 @@ import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
|
||||
import org.springframework.boot.build.DeployedPlugin;
|
||||
@ -66,7 +66,7 @@ public class AutoConfigurationPlugin implements Plugin<Project> {
|
||||
.add(project.getDependencies().project(Collections.singletonMap("path",
|
||||
":spring-boot-project:spring-boot-tools:spring-boot-configuration-processor")));
|
||||
project.getTasks().create("autoConfigurationMetadata", AutoConfigurationMetadata.class, (task) -> {
|
||||
SourceSet main = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets()
|
||||
SourceSet main = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets()
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
task.setSourceSet(main);
|
||||
task.dependsOn(main.getClassesTaskName());
|
||||
|
@ -21,8 +21,8 @@ import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import groovy.namespace.QName;
|
||||
import groovy.util.Node;
|
||||
import groovy.xml.QName;
|
||||
import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
|
@ -16,9 +16,7 @@
|
||||
|
||||
package org.springframework.boot.build.context.properties;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.gradle.api.Plugin;
|
||||
@ -27,7 +25,7 @@ import org.gradle.api.Task;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.file.RegularFile;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.tasks.PathSensitivity;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
@ -94,20 +92,19 @@ public class ConfigurationPropertiesPlugin implements Plugin<Project> {
|
||||
}
|
||||
|
||||
private void disableIncrementalCompilation(Project project) {
|
||||
SourceSet mainSourceSet = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets()
|
||||
SourceSet mainSourceSet = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets()
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
project.getTasks().named(mainSourceSet.getCompileJavaTaskName(), JavaCompile.class)
|
||||
.configure((compileJava) -> compileJava.getOptions().setIncremental(false));
|
||||
}
|
||||
|
||||
private void addMetadataArtifact(Project project) {
|
||||
SourceSet mainSourceSet = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets()
|
||||
SourceSet mainSourceSet = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets()
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
project.getConfigurations().maybeCreate(CONFIGURATION_PROPERTIES_METADATA_CONFIGURATION_NAME);
|
||||
project.afterEvaluate((evaluatedProject) -> evaluatedProject.getArtifacts().add(
|
||||
CONFIGURATION_PROPERTIES_METADATA_CONFIGURATION_NAME,
|
||||
evaluatedProject.provider((Callable<File>) () -> new File(mainSourceSet.getJava().getOutputDir(),
|
||||
"META-INF/spring-configuration-metadata.json")),
|
||||
mainSourceSet.getJava().getDestinationDirectory().dir("META-INF/spring-configuration-metadata.json"),
|
||||
(artifact) -> artifact
|
||||
.builtBy(evaluatedProject.getTasks().getByName(mainSourceSet.getClassesTaskName()))));
|
||||
}
|
||||
@ -117,7 +114,7 @@ public class ConfigurationPropertiesPlugin implements Plugin<Project> {
|
||||
.getByName(JavaPlugin.COMPILE_JAVA_TASK_NAME);
|
||||
((Task) compileJava).getInputs().files(project.getTasks().getByName(JavaPlugin.PROCESS_RESOURCES_TASK_NAME))
|
||||
.withPathSensitivity(PathSensitivity.RELATIVE).withPropertyName("processed resources");
|
||||
SourceSet mainSourceSet = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets()
|
||||
SourceSet mainSourceSet = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets()
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
compileJava.getOptions().getCompilerArgs()
|
||||
.add("-Aorg.springframework.boot.configurationprocessor.additionalMetadataLocations=" + StringUtils
|
||||
@ -130,7 +127,7 @@ public class ConfigurationPropertiesPlugin implements Plugin<Project> {
|
||||
.register(CHECK_ADDITIONAL_SPRING_CONFIGURATION_METADATA_TASK_NAME,
|
||||
CheckAdditionalSpringConfigurationMetadata.class);
|
||||
checkConfigurationMetadata.configure((check) -> {
|
||||
SourceSet mainSourceSet = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets()
|
||||
SourceSet mainSourceSet = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets()
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
check.setSource(mainSourceSet.getResources());
|
||||
check.include("META-INF/additional-spring-configuration-metadata.json");
|
||||
@ -145,7 +142,7 @@ public class ConfigurationPropertiesPlugin implements Plugin<Project> {
|
||||
TaskProvider<CheckSpringConfigurationMetadata> checkConfigurationMetadata = project.getTasks()
|
||||
.register(CHECK_SPRING_CONFIGURATION_METADATA_TASK_NAME, CheckSpringConfigurationMetadata.class);
|
||||
checkConfigurationMetadata.configure((check) -> {
|
||||
SourceSet mainSourceSet = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets()
|
||||
SourceSet mainSourceSet = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets()
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
Provider<RegularFile> metadataLocation = project.getTasks()
|
||||
.named(mainSourceSet.getCompileJavaTaskName(), JavaCompile.class)
|
||||
|
@ -46,7 +46,7 @@ public class MavenExec extends JavaExec {
|
||||
public MavenExec() {
|
||||
setClasspath(mavenConfiguration(getProject()));
|
||||
args("--batch-mode");
|
||||
setMain("org.apache.maven.cli.MavenCli");
|
||||
getMainClass().set("org.apache.maven.cli.MavenCli");
|
||||
}
|
||||
|
||||
public void setProjectDir(File projectDir) {
|
||||
|
@ -64,7 +64,7 @@ import org.gradle.api.file.RegularFileProperty;
|
||||
import org.gradle.api.model.ObjectFactory;
|
||||
import org.gradle.api.plugins.JavaLibraryPlugin;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.publish.PublishingExtension;
|
||||
import org.gradle.api.publish.maven.MavenPublication;
|
||||
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
|
||||
@ -225,7 +225,7 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
||||
}
|
||||
|
||||
private SourceSet getMainSourceSet(Project project) {
|
||||
SourceSetContainer sourceSets = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets();
|
||||
SourceSetContainer sourceSets = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets();
|
||||
return sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -20,7 +20,7 @@ import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.tasks.SourceSetContainer;
|
||||
|
||||
/**
|
||||
@ -44,7 +44,7 @@ public class OptionalDependenciesPlugin implements Plugin<Project> {
|
||||
optional.setCanBeConsumed(false);
|
||||
optional.setCanBeResolved(false);
|
||||
project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> {
|
||||
SourceSetContainer sourceSets = project.getConvention().getPlugin(JavaPluginConvention.class)
|
||||
SourceSetContainer sourceSets = project.getExtensions().getByType(JavaPluginExtension.class)
|
||||
.getSourceSets();
|
||||
sourceSets.all((sourceSet) -> {
|
||||
project.getConfigurations().getByName(sourceSet.getCompileClasspathConfigurationName())
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -19,7 +19,7 @@ package org.springframework.boot.build.test;
|
||||
import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
import org.gradle.api.tasks.SourceSetContainer;
|
||||
import org.gradle.api.tasks.testing.Test;
|
||||
@ -61,7 +61,7 @@ public class IntegrationTestPlugin implements Plugin<Project> {
|
||||
}
|
||||
|
||||
private SourceSet createSourceSet(Project project) {
|
||||
SourceSetContainer sourceSets = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets();
|
||||
SourceSetContainer sourceSets = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets();
|
||||
SourceSet intTestSourceSet = sourceSets.create(INT_TEST_SOURCE_SET_NAME);
|
||||
SourceSet main = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
intTestSourceSet.setCompileClasspath(intTestSourceSet.getCompileClasspath().plus(main.getOutput()));
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -20,7 +20,7 @@ import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.Task;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.specs.Spec;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
import org.gradle.api.tasks.SourceSetContainer;
|
||||
@ -65,7 +65,7 @@ public class SystemTestPlugin implements Plugin<Project> {
|
||||
}
|
||||
|
||||
private SourceSet createSourceSet(Project project) {
|
||||
SourceSetContainer sourceSets = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets();
|
||||
SourceSetContainer sourceSets = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets();
|
||||
SourceSet systemTestSourceSet = sourceSets.create(SYSTEM_TEST_SOURCE_SET_NAME);
|
||||
SourceSet mainSourceSet = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
systemTestSourceSet
|
||||
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.2-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
6
gradlew
vendored
6
gradlew
vendored
@ -205,6 +205,12 @@ set -- \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
|
10
gradlew.bat
vendored
10
gradlew.bat
vendored
@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -187,7 +187,10 @@ class ThreadDumpEndpointDocumentationTests extends MockMvcEndpointDocumentationT
|
||||
.andDo(MockMvcRestDocumentation.document("threaddump/text",
|
||||
preprocessResponse(new ContentModifyingOperationPreprocessor((bytes, mediaType) -> {
|
||||
String content = new String(bytes, StandardCharsets.UTF_8);
|
||||
return content.substring(0, content.indexOf("\"main\" - Thread")).getBytes();
|
||||
int mainThreadIndex = content.indexOf("\"main\" - Thread");
|
||||
String truncatedContent = (mainThreadIndex >= 0) ? content.substring(0, mainThreadIndex)
|
||||
: content;
|
||||
return truncatedContent.getBytes();
|
||||
}))));
|
||||
}
|
||||
|
||||
|
@ -206,3 +206,8 @@ bom {
|
||||
dependencies {
|
||||
api(enforcedPlatform(project(":spring-boot-project:spring-boot-dependencies")))
|
||||
}
|
||||
|
||||
tasks.withType(GenerateModuleMetadata).configureEach {
|
||||
// Internal module so enforced platform dependencies are OK
|
||||
suppressedValidationErrors.add('enforced-platform')
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -22,9 +22,9 @@ import org.gradle.api.Action;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.plugins.BasePlugin;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
import org.gradle.api.tasks.SourceSetContainer;
|
||||
import org.gradle.api.tasks.TaskContainer;
|
||||
import org.gradle.api.tasks.TaskProvider;
|
||||
import org.gradle.jvm.tasks.Jar;
|
||||
@ -112,8 +112,12 @@ public class SpringBootExtension {
|
||||
}
|
||||
|
||||
private File determineMainSourceSetResourcesOutputDir() {
|
||||
return this.project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets()
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getOutput().getResourcesDir();
|
||||
return sourceSets(this.project).getByName(SourceSet.MAIN_SOURCE_SET_NAME).getOutput().getResourcesDir();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private SourceSetContainer sourceSets(Project project) {
|
||||
return project.getConvention().getPlugin(org.gradle.api.plugins.JavaPluginConvention.class).getSourceSets();
|
||||
}
|
||||
|
||||
private String determineArtifactBaseName() {
|
||||
|
@ -31,7 +31,7 @@ import org.gradle.api.distribution.DistributionContainer;
|
||||
import org.gradle.api.file.CopySpec;
|
||||
import org.gradle.api.file.FileCollection;
|
||||
import org.gradle.api.plugins.ApplicationPlugin;
|
||||
import org.gradle.api.plugins.ApplicationPluginConvention;
|
||||
import org.gradle.api.plugins.JavaApplication;
|
||||
import org.gradle.api.tasks.TaskProvider;
|
||||
import org.gradle.jvm.application.scripts.TemplateBasedScriptGenerator;
|
||||
import org.gradle.jvm.application.tasks.CreateStartScripts;
|
||||
@ -45,21 +45,20 @@ final class ApplicationPluginAction implements PluginApplicationAction {
|
||||
|
||||
@Override
|
||||
public void execute(Project project) {
|
||||
ApplicationPluginConvention applicationConvention = project.getConvention()
|
||||
.getPlugin(ApplicationPluginConvention.class);
|
||||
JavaApplication javaApplication = project.getExtensions().getByType(JavaApplication.class);
|
||||
DistributionContainer distributions = project.getExtensions().getByType(DistributionContainer.class);
|
||||
Distribution distribution = distributions.create("boot");
|
||||
distribution.getDistributionBaseName()
|
||||
.convention((project.provider(() -> applicationConvention.getApplicationName() + "-boot")));
|
||||
.convention((project.provider(() -> javaApplication.getApplicationName() + "-boot")));
|
||||
TaskProvider<CreateStartScripts> bootStartScripts = project.getTasks().register("bootStartScripts",
|
||||
CreateStartScripts.class,
|
||||
(task) -> configureCreateStartScripts(project, applicationConvention, distribution, task));
|
||||
(task) -> configureCreateStartScripts(project, javaApplication, distribution, task));
|
||||
CopySpec binCopySpec = project.copySpec().into("bin").from(bootStartScripts);
|
||||
binCopySpec.setFileMode(0755);
|
||||
distribution.getContents().with(binCopySpec);
|
||||
}
|
||||
|
||||
private void configureCreateStartScripts(Project project, ApplicationPluginConvention applicationConvention,
|
||||
private void configureCreateStartScripts(Project project, JavaApplication javaApplication,
|
||||
Distribution distribution, CreateStartScripts createStartScripts) {
|
||||
createStartScripts
|
||||
.setDescription("Generates OS-specific start scripts to run the project as a Spring Boot application.");
|
||||
@ -75,9 +74,8 @@ final class ApplicationPluginAction implements PluginApplicationAction {
|
||||
});
|
||||
createStartScripts.getConventionMapping().map("outputDir",
|
||||
() -> new File(project.getBuildDir(), "bootScripts"));
|
||||
createStartScripts.getConventionMapping().map("applicationName", applicationConvention::getApplicationName);
|
||||
createStartScripts.getConventionMapping().map("defaultJvmOpts",
|
||||
applicationConvention::getApplicationDefaultJvmArgs);
|
||||
createStartScripts.getConventionMapping().map("applicationName", javaApplication::getApplicationName);
|
||||
createStartScripts.getConventionMapping().map("defaultJvmOpts", javaApplication::getApplicationDefaultJvmArgs);
|
||||
}
|
||||
|
||||
private CopySpec artifactFilesToLibCopySpec(Project project, Configuration configuration) {
|
||||
|
@ -36,7 +36,6 @@ import org.gradle.api.model.ObjectFactory;
|
||||
import org.gradle.api.plugins.ApplicationPlugin;
|
||||
import org.gradle.api.plugins.BasePlugin;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
@ -98,8 +97,7 @@ final class JavaPluginAction implements PluginApplicationAction {
|
||||
}
|
||||
|
||||
private TaskProvider<BootJar> configureBootJarTask(Project project) {
|
||||
SourceSet mainSourceSet = javaPluginConvention(project).getSourceSets()
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
SourceSet mainSourceSet = sourceSets(project).getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
Configuration developmentOnly = project.getConfigurations()
|
||||
.getByName(SpringBootPlugin.DEVELOPMENT_ONLY_CONFIGURATION_NAME);
|
||||
Configuration productionRuntimeClasspath = project.getConfigurations()
|
||||
@ -125,8 +123,8 @@ final class JavaPluginAction implements PluginApplicationAction {
|
||||
buildImage.setDescription("Builds an OCI image of the application using the output of the bootJar task");
|
||||
buildImage.setGroup(BasePlugin.BUILD_GROUP);
|
||||
buildImage.getArchiveFile().set(bootJar.get().getArchiveFile());
|
||||
buildImage.getTargetJavaVersion()
|
||||
.set(project.provider(() -> javaPluginConvention(project).getTargetCompatibility()));
|
||||
buildImage.getTargetJavaVersion().set(project.provider(
|
||||
() -> project.getExtensions().getByType(JavaPluginExtension.class).getTargetCompatibility()));
|
||||
});
|
||||
}
|
||||
|
||||
@ -135,8 +133,8 @@ final class JavaPluginAction implements PluginApplicationAction {
|
||||
}
|
||||
|
||||
private void configureBootRunTask(Project project) {
|
||||
Callable<FileCollection> classpath = () -> javaPluginConvention(project).getSourceSets()
|
||||
.findByName(SourceSet.MAIN_SOURCE_SET_NAME).getRuntimeClasspath().filter(new JarTypeFileSpec());
|
||||
Callable<FileCollection> classpath = () -> sourceSets(project).findByName(SourceSet.MAIN_SOURCE_SET_NAME)
|
||||
.getRuntimeClasspath().filter(new JarTypeFileSpec());
|
||||
TaskProvider<ResolveMainClassName> resolveProvider = ResolveMainClassName.registerForTask("bootRun", project,
|
||||
classpath);
|
||||
project.getTasks().register("bootRun", BootRun.class, (run) -> {
|
||||
@ -160,8 +158,9 @@ final class JavaPluginAction implements PluginApplicationAction {
|
||||
run.getJavaLauncher().convention(toolchainService.launcherFor(toolchain));
|
||||
}
|
||||
|
||||
private JavaPluginConvention javaPluginConvention(Project project) {
|
||||
return project.getConvention().getPlugin(JavaPluginConvention.class);
|
||||
@SuppressWarnings("deprecation")
|
||||
private SourceSetContainer sourceSets(Project project) {
|
||||
return project.getConvention().getPlugin(org.gradle.api.plugins.JavaPluginConvention.class).getSourceSets();
|
||||
}
|
||||
|
||||
private void configureUtf8Encoding(Project evaluatedProject) {
|
||||
@ -189,9 +188,8 @@ final class JavaPluginAction implements PluginApplicationAction {
|
||||
}
|
||||
|
||||
private void configureAdditionalMetadataLocations(JavaCompile compile) {
|
||||
SourceSetContainer sourceSets = compile.getProject().getConvention().getPlugin(JavaPluginConvention.class)
|
||||
.getSourceSets();
|
||||
sourceSets.stream().filter((candidate) -> candidate.getCompileJavaTaskName().equals(compile.getName()))
|
||||
sourceSets(compile.getProject()).stream()
|
||||
.filter((candidate) -> candidate.getCompileJavaTaskName().equals(compile.getName()))
|
||||
.map((match) -> match.getResources().getSrcDirs()).findFirst()
|
||||
.ifPresent((locations) -> compile.doFirst(new AdditionalMetadataLocationsConfigurer(locations)));
|
||||
}
|
||||
|
@ -17,10 +17,11 @@
|
||||
package org.springframework.boot.gradle.plugin;
|
||||
|
||||
import org.gradle.api.Action;
|
||||
import org.gradle.api.GradleException;
|
||||
import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.repositories.ArtifactRepository;
|
||||
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
|
||||
import org.gradle.api.tasks.Upload;
|
||||
|
||||
/**
|
||||
* {@link Action} that is executed in response to the
|
||||
@ -46,7 +47,7 @@ final class MavenPluginAction implements PluginApplicationAction {
|
||||
@Override
|
||||
public void execute(Project project) {
|
||||
project.afterEvaluate((evaluated) -> {
|
||||
project.getTasks().withType(Upload.class).configureEach((upload) -> {
|
||||
project.getTasks().withType(org.gradle.api.tasks.Upload.class).configureEach((upload) -> {
|
||||
if (this.uploadTaskName.equals(upload.getName())) {
|
||||
clearConfigurationMappings(upload);
|
||||
}
|
||||
@ -54,9 +55,28 @@ final class MavenPluginAction implements PluginApplicationAction {
|
||||
});
|
||||
}
|
||||
|
||||
private void clearConfigurationMappings(Upload upload) {
|
||||
upload.getRepositories().withType(org.gradle.api.artifacts.maven.MavenResolver.class,
|
||||
(resolver) -> resolver.getPom().getScopeMappings().getMappings().clear());
|
||||
private void clearConfigurationMappings(org.gradle.api.tasks.Upload upload) {
|
||||
upload.getRepositories().matching(this::isMavenResolver).all((resolver) -> {
|
||||
try {
|
||||
Object pom = resolver.getClass().getMethod("getPom").invoke(resolver);
|
||||
Object scopeMappings = pom.getClass().getMethod("getScopeMappings").invoke(pom);
|
||||
Object mappings = scopeMappings.getClass().getMethod("getMappings").invoke(scopeMappings);
|
||||
mappings.getClass().getMethod("clear").invoke(mappings);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
throw new GradleException("Failed to clear configuration mappings for task '" + upload.getName() + "'",
|
||||
ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private boolean isMavenResolver(ArtifactRepository repository) {
|
||||
for (Class<?> iface : repository.getClass().getInterfaces()) {
|
||||
if ("org.gradle.api.artifacts.maven.GroovyMavenDeployer".equals(iface.getName())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -34,7 +34,6 @@ import org.gradle.api.file.FileCollection;
|
||||
import org.gradle.api.file.RegularFile;
|
||||
import org.gradle.api.file.RegularFileProperty;
|
||||
import org.gradle.api.plugins.BasePlugin;
|
||||
import org.gradle.api.plugins.Convention;
|
||||
import org.gradle.api.plugins.JavaApplication;
|
||||
import org.gradle.api.provider.Property;
|
||||
import org.gradle.api.provider.Provider;
|
||||
@ -44,6 +43,7 @@ import org.gradle.api.tasks.Optional;
|
||||
import org.gradle.api.tasks.OutputFile;
|
||||
import org.gradle.api.tasks.TaskAction;
|
||||
import org.gradle.api.tasks.TaskProvider;
|
||||
import org.gradle.work.DisableCachingByDefault;
|
||||
|
||||
import org.springframework.boot.gradle.dsl.SpringBootExtension;
|
||||
import org.springframework.boot.loader.tools.MainClassFinder;
|
||||
@ -54,6 +54,7 @@ import org.springframework.boot.loader.tools.MainClassFinder;
|
||||
* @author Andy Wilkinson
|
||||
* @since 2.4
|
||||
*/
|
||||
@DisableCachingByDefault(because = "Not worth caching")
|
||||
public class ResolveMainClassName extends DefaultTask {
|
||||
|
||||
private static final String SPRING_BOOT_APPLICATION_CLASS_NAME = "org.springframework.boot.autoconfigure.SpringBootApplication";
|
||||
@ -156,13 +157,12 @@ public class ResolveMainClassName extends DefaultTask {
|
||||
Callable<FileCollection> classpath) {
|
||||
TaskProvider<ResolveMainClassName> resolveMainClassNameProvider = project.getTasks()
|
||||
.register(taskName + "MainClassName", ResolveMainClassName.class, (resolveMainClassName) -> {
|
||||
Convention convention = project.getConvention();
|
||||
resolveMainClassName.setDescription(
|
||||
"Resolves the name of the application's main class for the " + taskName + " task.");
|
||||
resolveMainClassName.setGroup(BasePlugin.BUILD_GROUP);
|
||||
resolveMainClassName.setClasspath(classpath);
|
||||
resolveMainClassName.getConfiguredMainClassName().convention(project.provider(() -> {
|
||||
String javaApplicationMainClass = getJavaApplicationMainClass(convention);
|
||||
String javaApplicationMainClass = getJavaApplicationMainClass(project);
|
||||
if (javaApplicationMainClass != null) {
|
||||
return javaApplicationMainClass;
|
||||
}
|
||||
@ -176,8 +176,8 @@ public class ResolveMainClassName extends DefaultTask {
|
||||
return resolveMainClassNameProvider;
|
||||
}
|
||||
|
||||
private static String getJavaApplicationMainClass(Convention convention) {
|
||||
JavaApplication javaApplication = convention.findByType(JavaApplication.class);
|
||||
private static String getJavaApplicationMainClass(Project project) {
|
||||
JavaApplication javaApplication = project.getExtensions().findByType(JavaApplication.class);
|
||||
if (javaApplication == null) {
|
||||
return null;
|
||||
}
|
||||
|
@ -72,10 +72,9 @@ class WarPluginAction implements PluginApplicationAction {
|
||||
.getByName(SpringBootPlugin.DEVELOPMENT_ONLY_CONFIGURATION_NAME);
|
||||
Configuration productionRuntimeClasspath = project.getConfigurations()
|
||||
.getByName(SpringBootPlugin.PRODUCTION_RUNTIME_CLASSPATH_CONFIGURATION_NAME);
|
||||
Callable<FileCollection> classpath = () -> project.getConvention().getByType(SourceSetContainer.class)
|
||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getRuntimeClasspath()
|
||||
.minus(providedRuntimeConfiguration(project)).minus((developmentOnly.minus(productionRuntimeClasspath)))
|
||||
.filter(new JarTypeFileSpec());
|
||||
Callable<FileCollection> classpath = () -> sourceSets(project).getByName(SourceSet.MAIN_SOURCE_SET_NAME)
|
||||
.getRuntimeClasspath().minus(providedRuntimeConfiguration(project))
|
||||
.minus((developmentOnly.minus(productionRuntimeClasspath))).filter(new JarTypeFileSpec());
|
||||
TaskProvider<ResolveMainClassName> resolveMainClassName = ResolveMainClassName
|
||||
.registerForTask(SpringBootPlugin.BOOT_WAR_TASK_NAME, project, classpath);
|
||||
TaskProvider<BootWar> bootWarProvider = project.getTasks().register(SpringBootPlugin.BOOT_WAR_TASK_NAME,
|
||||
@ -95,6 +94,11 @@ class WarPluginAction implements PluginApplicationAction {
|
||||
return bootWarProvider;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private SourceSetContainer sourceSets(Project project) {
|
||||
return project.getConvention().getPlugin(org.gradle.api.plugins.JavaPluginConvention.class).getSourceSets();
|
||||
}
|
||||
|
||||
private FileCollection providedRuntimeConfiguration(Project project) {
|
||||
ConfigurationContainer configurations = project.getConfigurations();
|
||||
return configurations.getByName(WarPlugin.PROVIDED_RUNTIME_CONFIGURATION_NAME);
|
||||
|
@ -30,6 +30,7 @@ import org.gradle.api.tasks.Nested;
|
||||
import org.gradle.api.tasks.OutputDirectory;
|
||||
import org.gradle.api.tasks.TaskAction;
|
||||
import org.gradle.api.tasks.TaskExecutionException;
|
||||
import org.gradle.work.DisableCachingByDefault;
|
||||
|
||||
import org.springframework.boot.loader.tools.BuildPropertiesWriter;
|
||||
import org.springframework.boot.loader.tools.BuildPropertiesWriter.ProjectDetails;
|
||||
@ -41,6 +42,7 @@ import org.springframework.boot.loader.tools.BuildPropertiesWriter.ProjectDetail
|
||||
* @author Andy Wilkinson
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@DisableCachingByDefault(because = "Not worth caching")
|
||||
public class BuildInfo extends ConventionTask {
|
||||
|
||||
private final BuildInfoProperties properties = new BuildInfoProperties(getProject());
|
||||
|
@ -66,12 +66,17 @@ public class BuildInfoProperties implements Serializable {
|
||||
}
|
||||
|
||||
private Provider<String> projectVersion(Project project) {
|
||||
Provider<String> externalVersionProperty = project.getProviders().gradleProperty("version")
|
||||
.forUseAtConfigurationTime();
|
||||
Provider<String> externalVersionProperty = forUseAtConfigurationTime(
|
||||
project.getProviders().gradleProperty("version"));
|
||||
externalVersionProperty.getOrNull();
|
||||
return project.provider(() -> project.getVersion().toString());
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private Provider<String> forUseAtConfigurationTime(Provider<String> provider) {
|
||||
return provider.forUseAtConfigurationTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value used for the {@code build.group} property. Defaults to the
|
||||
* {@link Project#getGroup() Project's group}.
|
||||
|
@ -36,7 +36,7 @@ import org.gradle.api.tasks.Nested;
|
||||
import org.gradle.api.tasks.Optional;
|
||||
import org.gradle.api.tasks.TaskAction;
|
||||
import org.gradle.api.tasks.options.Option;
|
||||
import org.gradle.util.ConfigureUtil;
|
||||
import org.gradle.work.DisableCachingByDefault;
|
||||
|
||||
import org.springframework.boot.buildpack.platform.build.BuildRequest;
|
||||
import org.springframework.boot.buildpack.platform.build.Builder;
|
||||
@ -62,6 +62,7 @@ import org.springframework.util.StringUtils;
|
||||
* @author Julian Liebig
|
||||
* @since 2.3.0
|
||||
*/
|
||||
@DisableCachingByDefault
|
||||
public class BootBuildImage extends DefaultTask {
|
||||
|
||||
private static final String BUILDPACK_JVM_VERSION_KEY = "BP_JVM_VERSION";
|
||||
@ -465,7 +466,7 @@ public class BootBuildImage extends DefaultTask {
|
||||
* @param closure the closure
|
||||
*/
|
||||
public void buildCache(Closure<?> closure) {
|
||||
buildCache(ConfigureUtil.configureUsing(closure));
|
||||
buildCache(Closures.asAction(closure));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -493,7 +494,7 @@ public class BootBuildImage extends DefaultTask {
|
||||
* @param closure the closure
|
||||
*/
|
||||
public void launchCache(Closure<?> closure) {
|
||||
launchCache(ConfigureUtil.configureUsing(closure));
|
||||
launchCache(Closures.asAction(closure));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -521,7 +522,7 @@ public class BootBuildImage extends DefaultTask {
|
||||
* @since 2.4.0
|
||||
*/
|
||||
public void docker(Closure<?> closure) {
|
||||
docker(ConfigureUtil.configureUsing(closure));
|
||||
docker(Closures.asAction(closure));
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
|
@ -34,6 +34,7 @@ import org.gradle.api.specs.Spec;
|
||||
import org.gradle.api.tasks.Internal;
|
||||
import org.gradle.api.tasks.Nested;
|
||||
import org.gradle.api.tasks.bundling.Jar;
|
||||
import org.gradle.work.DisableCachingByDefault;
|
||||
|
||||
/**
|
||||
* A custom {@link Jar} task that produces a Spring Boot executable jar.
|
||||
@ -44,6 +45,7 @@ import org.gradle.api.tasks.bundling.Jar;
|
||||
* @author Phillip Webb
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@DisableCachingByDefault(because = "Not worth caching")
|
||||
public class BootJar extends Jar implements BootArchive {
|
||||
|
||||
private static final String LAUNCHER = "org.springframework.boot.loader.JarLauncher";
|
||||
|
@ -35,6 +35,7 @@ import org.gradle.api.tasks.Internal;
|
||||
import org.gradle.api.tasks.Nested;
|
||||
import org.gradle.api.tasks.Optional;
|
||||
import org.gradle.api.tasks.bundling.War;
|
||||
import org.gradle.work.DisableCachingByDefault;
|
||||
|
||||
/**
|
||||
* A custom {@link War} task that produces a Spring Boot executable war.
|
||||
@ -43,6 +44,7 @@ import org.gradle.api.tasks.bundling.War;
|
||||
* @author Phillip Webb
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@DisableCachingByDefault(because = "Not worth caching")
|
||||
public class BootWar extends War implements BootArchive {
|
||||
|
||||
private static final String LAUNCHER = "org.springframework.boot.loader.WarLauncher";
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2021-2021 the original author or authors.
|
||||
* Copyright 2021-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -20,7 +20,6 @@ import groovy.lang.Closure;
|
||||
import org.gradle.api.Action;
|
||||
import org.gradle.api.GradleException;
|
||||
import org.gradle.api.tasks.Input;
|
||||
import org.gradle.util.ConfigureUtil;
|
||||
|
||||
import org.springframework.boot.buildpack.platform.build.Cache;
|
||||
|
||||
@ -62,7 +61,7 @@ public class CacheSpec {
|
||||
if (this.cache != null) {
|
||||
throw new GradleException("Each image building cache can be configured only once");
|
||||
}
|
||||
volume(ConfigureUtil.configureUsing(closure));
|
||||
volume(Closures.asAction(closure));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.gradle.tasks.bundling;
|
||||
|
||||
import groovy.lang.Closure;
|
||||
import org.gradle.api.Action;
|
||||
|
||||
/**
|
||||
* Wrapper for the deprecated {@link org.gradle.util.ConfigureUtil} that allows
|
||||
* deprecation warnings to be suppressed in a single, focused location.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
final class Closures {
|
||||
|
||||
private Closures() {
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static <T> Action<T> asAction(Closure<?> closure) {
|
||||
return org.gradle.util.ConfigureUtil.configureUsing(closure);
|
||||
}
|
||||
|
||||
}
|
@ -22,7 +22,6 @@ import org.gradle.api.GradleException;
|
||||
import org.gradle.api.tasks.Input;
|
||||
import org.gradle.api.tasks.Nested;
|
||||
import org.gradle.api.tasks.Optional;
|
||||
import org.gradle.util.ConfigureUtil;
|
||||
|
||||
import org.springframework.boot.buildpack.platform.docker.configuration.DockerConfiguration;
|
||||
|
||||
@ -110,7 +109,7 @@ public class DockerSpec {
|
||||
* @param closure the closure to apply
|
||||
*/
|
||||
public void builderRegistry(Closure<?> closure) {
|
||||
builderRegistry(ConfigureUtil.configureUsing(closure));
|
||||
builderRegistry(Closures.asAction(closure));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -138,7 +137,7 @@ public class DockerSpec {
|
||||
* @param closure the closure to apply
|
||||
*/
|
||||
public void publishRegistry(Closure<?> closure) {
|
||||
publishRegistry(ConfigureUtil.configureUsing(closure));
|
||||
publishRegistry(Closures.asAction(closure));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -27,7 +27,6 @@ import groovy.lang.Closure;
|
||||
import org.gradle.api.Action;
|
||||
import org.gradle.api.tasks.Input;
|
||||
import org.gradle.api.tasks.Optional;
|
||||
import org.gradle.util.ConfigureUtil;
|
||||
|
||||
import org.springframework.boot.loader.tools.Layer;
|
||||
import org.springframework.boot.loader.tools.Layers;
|
||||
@ -133,7 +132,7 @@ public class LayeredSpec {
|
||||
* @param closure the closure
|
||||
*/
|
||||
public void application(Closure<?> closure) {
|
||||
application(ConfigureUtil.configureUsing(closure));
|
||||
application(Closures.asAction(closure));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -168,7 +167,7 @@ public class LayeredSpec {
|
||||
* @param closure the closure
|
||||
*/
|
||||
public void dependencies(Closure<?> closure) {
|
||||
dependencies(ConfigureUtil.configureUsing(closure));
|
||||
dependencies(Closures.asAction(closure));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -245,7 +244,7 @@ public class LayeredSpec {
|
||||
}
|
||||
|
||||
public void intoLayer(String layer, Closure<?> closure) {
|
||||
intoLayer(layer, ConfigureUtil.configureUsing(closure));
|
||||
intoLayer(layer, Closures.asAction(closure));
|
||||
}
|
||||
|
||||
public void intoLayer(String layer, Action<IntoLayerSpec> action) {
|
||||
|
@ -27,6 +27,7 @@ import org.gradle.api.tasks.JavaExec;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
import org.gradle.api.tasks.SourceSetOutput;
|
||||
import org.gradle.jvm.toolchain.JavaLauncher;
|
||||
import org.gradle.work.DisableCachingByDefault;
|
||||
|
||||
/**
|
||||
* Custom {@link JavaExec} task for running a Spring Boot application.
|
||||
@ -34,6 +35,7 @@ import org.gradle.jvm.toolchain.JavaLauncher;
|
||||
* @author Andy Wilkinson
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@DisableCachingByDefault(because = "Application should always run")
|
||||
public class BootRun extends JavaExec {
|
||||
|
||||
private boolean optimizedLaunch = true;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -61,7 +61,7 @@ public class GradleMultiDslExtension implements TestTemplateInvocationContextPro
|
||||
@Override
|
||||
public List<Extension> getAdditionalExtensions() {
|
||||
GradleBuild gradleBuild = new GradleBuild(this.dsl);
|
||||
gradleBuild.gradleVersion(GradleVersions.currentOrMinimumCompatible());
|
||||
gradleBuild.gradleVersion(GradleVersions.minimumCompatible());
|
||||
return Arrays.asList(new GradleBuildFieldSetter(gradleBuild), new GradleBuildExtension());
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ public final class GradleProjectBuilder {
|
||||
builder.withName(this.name);
|
||||
}
|
||||
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) {
|
||||
NativeServices.initialize(userHome);
|
||||
NativeServices.initializeOnClient(userHome);
|
||||
try {
|
||||
ProjectBuilderImpl.getGlobalServices();
|
||||
}
|
||||
|
@ -34,30 +34,24 @@ public final class GradleVersions {
|
||||
|
||||
public static List<String> allCompatible() {
|
||||
if (isJava18()) {
|
||||
return Arrays.asList("7.3.3", "7.4.2", "7.5.1");
|
||||
return Arrays.asList("7.3.3", "7.4.2", GradleVersion.current().getVersion());
|
||||
}
|
||||
if (isJava17()) {
|
||||
return Arrays.asList("7.2", "7.3.3", "7.4.2", "7.5.1");
|
||||
return Arrays.asList("7.2", "7.3.3", "7.4.2", GradleVersion.current().getVersion());
|
||||
}
|
||||
if (isJava16()) {
|
||||
return Arrays.asList("7.0.2", "7.1", "7.2", "7.3.3", "7.4.2", "7.5.1");
|
||||
return Arrays.asList("7.0.2", "7.1", "7.2", "7.3.3", "7.4.2", GradleVersion.current().getVersion());
|
||||
}
|
||||
return Arrays.asList("6.8.3", GradleVersion.current().getVersion(), "7.0.2", "7.1.1", "7.2", "7.3.3", "7.4.2",
|
||||
"7.5.1");
|
||||
return Arrays.asList("6.8.3", "6.9.2", "7.0.2", "7.1.1", "7.2", "7.3.3", "7.4.2",
|
||||
GradleVersion.current().getVersion());
|
||||
}
|
||||
|
||||
public static String currentOrMinimumCompatible() {
|
||||
if (isJava17()) {
|
||||
return "7.3.3";
|
||||
}
|
||||
if (isJava16()) {
|
||||
return "7.0.2";
|
||||
}
|
||||
return GradleVersion.current().getVersion();
|
||||
public static String minimumCompatible() {
|
||||
return allCompatible().get(0);
|
||||
}
|
||||
|
||||
private static boolean isJava18() {
|
||||
return JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_HIGHER);
|
||||
return JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_18);
|
||||
}
|
||||
|
||||
private static boolean isJava17() {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -38,7 +38,7 @@ public class GradleBuildInjectionExtension implements BeforeEachCallback {
|
||||
|
||||
GradleBuildInjectionExtension() {
|
||||
this.gradleBuild = new GradleBuild();
|
||||
this.gradleBuild.gradleVersion(GradleVersions.currentOrMinimumCompatible());
|
||||
this.gradleBuild.gradleVersion(GradleVersions.minimumCompatible());
|
||||
String bootVersion = System.getProperty("springBootVersion");
|
||||
Assert.notNull(bootVersion, "Property 'springBootVersion' must be set in build environment");
|
||||
this.gradleBuild.bootVersion(bootVersion);
|
||||
|
Loading…
x
Reference in New Issue
Block a user