Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
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;
Expand Down Expand Up @@ -125,8 +124,7 @@ private void configureBootBuildImageTask(Project project, TaskProvider<BootJar>
}

private void configureArtifactPublication(TaskProvider<BootJar> bootJar) {
LazyPublishArtifact artifact = new LazyPublishArtifact(bootJar);
this.singlePublishedArtifact.addCandidate(artifact);
this.singlePublishedArtifact.addCandidate(bootJar);
}

private void configureBootRunTask(Project project) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,13 @@
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.AbstractArchiveTask;

/**
* A wrapper for a {@link PublishArtifactSet} that ensures that only a single artifact is
Expand All @@ -30,25 +34,27 @@
*/
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 addCandidate(PublishArtifact candidate) {
if (this.currentArtifact == null || "war".equals(candidate.getExtension())) {
this.artifacts.remove(this.currentArtifact);
this.artifacts.add(candidate);
this.currentArtifact = candidate;
void addCandidate(TaskProvider<? extends AbstractArchiveTask> candidate) {
if (this.currentArtifact == null || "war".equals(candidate.get().getArchiveExtension().get())) {
this.configuration.getArtifacts().remove(this.currentArtifact);
this.currentArtifact = this.handler.add(this.configuration.getName(), candidate);
}
}

@Override
public TaskDependency getBuildDependencies() {
return this.artifacts.getBuildDependencies();
return this.configuration.getArtifacts().getBuildDependencies();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ private Configuration createBootArchivesConfiguration(Project project) {
}

private void registerPluginActions(Project project, Configuration bootArchives) {
SinglePublishedArtifact singlePublishedArtifact = new SinglePublishedArtifact(bootArchives.getArtifacts());
SinglePublishedArtifact singlePublishedArtifact = new SinglePublishedArtifact(bootArchives,
project.getArtifacts());
List<PluginApplicationAction> actions = Arrays.asList(new JavaPluginAction(singlePublishedArtifact),
new WarPluginAction(singlePublishedArtifact), new MavenPluginAction(bootArchives.getUploadTaskName()),
new DependencyManagementPluginAction(), new ApplicationPluginAction(), new KotlinPluginAction());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
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;
import org.gradle.api.tasks.TaskProvider;
Expand Down Expand Up @@ -88,8 +87,7 @@ private FileCollection providedRuntimeConfiguration(Project project) {
}

private void configureArtifactPublication(TaskProvider<BootWar> bootWar) {
LazyPublishArtifact artifact = new LazyPublishArtifact(bootWar);
this.singlePublishedArtifact.addCandidate(artifact);
this.singlePublishedArtifact.addCandidate(bootWar);
}

}