Merge branch '2.3.x' into 2.4.x

Fixes gh-24521 in 2.4.2
This commit is contained in:
Scott Frederick
2020-12-16 14:53:55 -06:00
6 changed files with 59 additions and 1 deletions

View File

@@ -22,6 +22,7 @@ import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.file.FileCollection;
import org.gradle.api.file.RegularFile;
import org.gradle.api.internal.artifacts.dsl.LazyPublishArtifact;
import org.gradle.api.plugins.BasePlugin;
import org.gradle.api.plugins.WarPlugin;
@@ -30,6 +31,7 @@ import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.SourceSetContainer;
import org.gradle.api.tasks.TaskProvider;
import org.springframework.boot.gradle.tasks.bundling.BootBuildImage;
import org.springframework.boot.gradle.tasks.bundling.BootWar;
/**
@@ -54,6 +56,7 @@ class WarPluginAction implements PluginApplicationAction {
@Override
public void execute(Project project) {
disableWarTask(project);
disableBootBuildImageTask(project);
TaskProvider<BootWar> bootWar = configureBootWarTask(project);
configureArtifactPublication(bootWar);
}
@@ -62,6 +65,11 @@ class WarPluginAction implements PluginApplicationAction {
project.getTasks().named(WarPlugin.WAR_TASK_NAME).configure((war) -> war.setEnabled(false));
}
private void disableBootBuildImageTask(Project project) {
project.getTasks().named(SpringBootPlugin.BOOT_BUILD_IMAGE_TASK_NAME, BootBuildImage.class)
.configure((buildImage) -> buildImage.getJar().set((RegularFile) null));
}
private TaskProvider<BootWar> configureBootWarTask(Project project) {
Configuration developmentOnly = project.getConfigurations()
.getByName(SpringBootPlugin.DEVELOPMENT_ONLY_CONFIGURATION_NAME);

View File

@@ -99,6 +99,7 @@ public class BootBuildImage extends DefaultTask {
* @return the jar property
*/
@Input
@Optional
public RegularFileProperty getJar() {
return this.jar;
}
@@ -312,6 +313,9 @@ public class BootBuildImage extends DefaultTask {
@TaskAction
void buildImage() throws DockerEngineException, IOException {
if (!this.jar.isPresent()) {
throw new GradleException("Executable jar file required for building image");
}
Builder builder = new Builder(this.docker.asDockerConfiguration());
BuildRequest request = createRequest();
builder.build(request);