Browse Source

Merge branch '2.5.x' into 2.6.x

Closes gh-30217
pull/30349/head
Andy Wilkinson 4 years ago
parent
commit
c4d2602a3e
  1. 4
      spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/JavaPluginAction.java
  2. 29
      spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SinglePublishedArtifact.java
  3. 3
      spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java
  4. 4
      spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/WarPluginAction.java

4
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/JavaPluginAction.java

@ -32,7 +32,6 @@ import org.gradle.api.attributes.Bundling;
import org.gradle.api.attributes.LibraryElements; import org.gradle.api.attributes.LibraryElements;
import org.gradle.api.attributes.Usage; import org.gradle.api.attributes.Usage;
import org.gradle.api.file.FileCollection; import org.gradle.api.file.FileCollection;
import org.gradle.api.internal.artifacts.dsl.LazyPublishArtifact;
import org.gradle.api.model.ObjectFactory; import org.gradle.api.model.ObjectFactory;
import org.gradle.api.plugins.ApplicationPlugin; import org.gradle.api.plugins.ApplicationPlugin;
import org.gradle.api.plugins.BasePlugin; import org.gradle.api.plugins.BasePlugin;
@ -132,8 +131,7 @@ final class JavaPluginAction implements PluginApplicationAction {
} }
private void configureArtifactPublication(TaskProvider<BootJar> bootJar) { private void configureArtifactPublication(TaskProvider<BootJar> bootJar) {
LazyPublishArtifact artifact = new LazyPublishArtifact(bootJar); this.singlePublishedArtifact.addJarCandidate(bootJar);
this.singlePublishedArtifact.addJarCandidate(artifact);
} }
private void configureBootRunTask(Project project) { private void configureBootRunTask(Project project) {

29
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SinglePublishedArtifact.java

@ -17,9 +17,16 @@
package org.springframework.boot.gradle.plugin; package org.springframework.boot.gradle.plugin;
import org.gradle.api.Buildable; import org.gradle.api.Buildable;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.PublishArtifact; import org.gradle.api.artifacts.PublishArtifact;
import org.gradle.api.artifacts.PublishArtifactSet; import org.gradle.api.artifacts.PublishArtifactSet;
import org.gradle.api.artifacts.dsl.ArtifactHandler;
import org.gradle.api.tasks.TaskDependency; import org.gradle.api.tasks.TaskDependency;
import org.gradle.api.tasks.TaskProvider;
import org.gradle.api.tasks.bundling.Jar;
import org.springframework.boot.gradle.tasks.bundling.BootJar;
import org.springframework.boot.gradle.tasks.bundling.BootWar;
/** /**
* A wrapper for a {@link PublishArtifactSet} that ensures that only a single artifact is * A wrapper for a {@link PublishArtifactSet} that ensures that only a single artifact is
@ -30,33 +37,35 @@ import org.gradle.api.tasks.TaskDependency;
*/ */
final class SinglePublishedArtifact implements Buildable { final class SinglePublishedArtifact implements Buildable {
private final PublishArtifactSet artifacts; private final Configuration configuration;
private final ArtifactHandler handler;
private PublishArtifact currentArtifact; private PublishArtifact currentArtifact;
SinglePublishedArtifact(PublishArtifactSet artifacts) { SinglePublishedArtifact(Configuration configuration, ArtifactHandler handler) {
this.artifacts = artifacts; this.configuration = configuration;
this.handler = handler;
} }
void addWarCandidate(PublishArtifact candidate) { void addWarCandidate(TaskProvider<BootWar> candidate) {
add(candidate); add(candidate);
} }
void addJarCandidate(PublishArtifact candidate) { void addJarCandidate(TaskProvider<BootJar> candidate) {
if (this.currentArtifact == null) { if (this.currentArtifact == null) {
add(candidate); add(candidate);
} }
} }
private void add(PublishArtifact artifact) { private void add(TaskProvider<? extends Jar> artifact) {
this.artifacts.remove(this.currentArtifact); this.configuration.getArtifacts().remove(this.currentArtifact);
this.artifacts.add(artifact); this.currentArtifact = this.handler.add(this.configuration.getName(), artifact);
this.currentArtifact = artifact;
} }
@Override @Override
public TaskDependency getBuildDependencies() { public TaskDependency getBuildDependencies() {
return this.artifacts.getBuildDependencies(); return this.configuration.getArtifacts().getBuildDependencies();
} }
} }

3
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootPlugin.java

@ -116,7 +116,8 @@ public class SpringBootPlugin implements Plugin<Project> {
} }
private void registerPluginActions(Project project, Configuration bootArchives) { private void registerPluginActions(Project project, Configuration bootArchives) {
SinglePublishedArtifact singlePublishedArtifact = new SinglePublishedArtifact(bootArchives.getArtifacts()); SinglePublishedArtifact singlePublishedArtifact = new SinglePublishedArtifact(bootArchives,
project.getArtifacts());
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
List<PluginApplicationAction> actions = Arrays.asList(new JavaPluginAction(singlePublishedArtifact), List<PluginApplicationAction> actions = Arrays.asList(new JavaPluginAction(singlePublishedArtifact),
new WarPluginAction(singlePublishedArtifact), new MavenPluginAction(bootArchives.getUploadTaskName()), new WarPluginAction(singlePublishedArtifact), new MavenPluginAction(bootArchives.getUploadTaskName()),

4
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/WarPluginAction.java

@ -24,7 +24,6 @@ import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.file.FileCollection; import org.gradle.api.file.FileCollection;
import org.gradle.api.internal.artifacts.dsl.LazyPublishArtifact;
import org.gradle.api.plugins.BasePlugin; import org.gradle.api.plugins.BasePlugin;
import org.gradle.api.plugins.WarPlugin; import org.gradle.api.plugins.WarPlugin;
import org.gradle.api.provider.Provider; import org.gradle.api.provider.Provider;
@ -107,8 +106,7 @@ class WarPluginAction implements PluginApplicationAction {
} }
private void configureArtifactPublication(TaskProvider<BootWar> bootWar) { private void configureArtifactPublication(TaskProvider<BootWar> bootWar) {
LazyPublishArtifact artifact = new LazyPublishArtifact(bootWar); this.singlePublishedArtifact.addWarCandidate(bootWar);
this.singlePublishedArtifact.addWarCandidate(artifact);
} }
} }

Loading…
Cancel
Save