Refactor code to avoid using internal LazyPublishArtifact
See gh-30209
This commit is contained in:
parent
f11ddb4bd7
commit
264a6888a9
|
|
@ -32,7 +32,6 @@ import org.gradle.api.attributes.Bundling;
|
|||
import org.gradle.api.attributes.LibraryElements;
|
||||
import org.gradle.api.attributes.Usage;
|
||||
import org.gradle.api.file.FileCollection;
|
||||
import org.gradle.api.internal.artifacts.dsl.LazyPublishArtifact;
|
||||
import org.gradle.api.model.ObjectFactory;
|
||||
import org.gradle.api.plugins.ApplicationPlugin;
|
||||
import org.gradle.api.plugins.BasePlugin;
|
||||
|
|
@ -132,8 +131,7 @@ final class JavaPluginAction implements PluginApplicationAction {
|
|||
}
|
||||
|
||||
private void configureArtifactPublication(TaskProvider<BootJar> bootJar) {
|
||||
LazyPublishArtifact artifact = new LazyPublishArtifact(bootJar);
|
||||
this.singlePublishedArtifact.addJarCandidate(artifact);
|
||||
this.singlePublishedArtifact.addJarCandidate(bootJar);
|
||||
}
|
||||
|
||||
private void configureBootRunTask(Project project) {
|
||||
|
|
|
|||
|
|
@ -17,9 +17,16 @@
|
|||
package org.springframework.boot.gradle.plugin;
|
||||
|
||||
import org.gradle.api.Buildable;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.artifacts.PublishArtifact;
|
||||
import org.gradle.api.artifacts.PublishArtifactSet;
|
||||
import org.gradle.api.artifacts.dsl.ArtifactHandler;
|
||||
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
|
||||
|
|
@ -30,33 +37,35 @@ import org.gradle.api.tasks.TaskDependency;
|
|||
*/
|
||||
final class SinglePublishedArtifact implements Buildable {
|
||||
|
||||
private final PublishArtifactSet artifacts;
|
||||
private final Configuration configuration;
|
||||
|
||||
private final ArtifactHandler handler;
|
||||
|
||||
private PublishArtifact currentArtifact;
|
||||
|
||||
SinglePublishedArtifact(PublishArtifactSet artifacts) {
|
||||
this.artifacts = artifacts;
|
||||
SinglePublishedArtifact(Configuration configuration, ArtifactHandler handler) {
|
||||
this.configuration = configuration;
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
void addWarCandidate(PublishArtifact candidate) {
|
||||
void addWarCandidate(TaskProvider<BootWar> candidate) {
|
||||
add(candidate);
|
||||
}
|
||||
|
||||
void addJarCandidate(PublishArtifact candidate) {
|
||||
void addJarCandidate(TaskProvider<BootJar> candidate) {
|
||||
if (this.currentArtifact == null) {
|
||||
add(candidate);
|
||||
}
|
||||
}
|
||||
|
||||
private void add(PublishArtifact artifact) {
|
||||
this.artifacts.remove(this.currentArtifact);
|
||||
this.artifacts.add(artifact);
|
||||
this.currentArtifact = artifact;
|
||||
private void add(TaskProvider<? extends Jar> artifact) {
|
||||
this.configuration.getArtifacts().remove(this.currentArtifact);
|
||||
this.currentArtifact = this.handler.add(this.configuration.getName(), artifact);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskDependency getBuildDependencies() {
|
||||
return this.artifacts.getBuildDependencies();
|
||||
return this.configuration.getArtifacts().getBuildDependencies();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,7 +116,8 @@ public class SpringBootPlugin implements Plugin<Project> {
|
|||
}
|
||||
|
||||
private void registerPluginActions(Project project, Configuration bootArchives) {
|
||||
SinglePublishedArtifact singlePublishedArtifact = new SinglePublishedArtifact(bootArchives.getArtifacts());
|
||||
SinglePublishedArtifact singlePublishedArtifact = new SinglePublishedArtifact(bootArchives,
|
||||
project.getArtifacts());
|
||||
@SuppressWarnings("deprecation")
|
||||
List<PluginApplicationAction> actions = Arrays.asList(new JavaPluginAction(singlePublishedArtifact),
|
||||
new WarPluginAction(singlePublishedArtifact), new MavenPluginAction(bootArchives.getUploadTaskName()),
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ 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.internal.artifacts.dsl.LazyPublishArtifact;
|
||||
import org.gradle.api.plugins.BasePlugin;
|
||||
import org.gradle.api.plugins.WarPlugin;
|
||||
import org.gradle.api.provider.Provider;
|
||||
|
|
@ -107,8 +106,7 @@ class WarPluginAction implements PluginApplicationAction {
|
|||
}
|
||||
|
||||
private void configureArtifactPublication(TaskProvider<BootWar> bootWar) {
|
||||
LazyPublishArtifact artifact = new LazyPublishArtifact(bootWar);
|
||||
this.singlePublishedArtifact.addWarCandidate(artifact);
|
||||
this.singlePublishedArtifact.addWarCandidate(bootWar);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue