Skip to content

Commit e03f7e3

Browse files
authored
Merge pull request #49206 from aloubyansky/gradle-deploy-dep-lookup
Fix deployer lookup in the Gradle deploy task
2 parents a115307 + 14e4034 commit e03f7e3

File tree

1 file changed

+22
-17
lines changed
  • devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks

1 file changed

+22
-17
lines changed

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/Deploy.java

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.quarkus.deployment.cmd.DeployCommandDeclarationResultBuildItem;
3030
import io.quarkus.deployment.cmd.DeployCommandHandler;
3131
import io.quarkus.deployment.util.DeploymentUtil;
32+
import io.quarkus.maven.dependency.ArtifactCoords;
3233

3334
public abstract class Deploy extends QuarkusBuildTask {
3435

@@ -66,6 +67,10 @@ public String[] getRequiresOneOf() {
6667
boolean imageBuild = false;
6768
Optional<String> imageBuilder = Optional.empty();
6869

70+
public Optional<String> getDeployer() {
71+
return deployer;
72+
}
73+
6974
@Option(option = "deployer", description = "The deployer to use")
7075
public void setDeployer(String deployer) {
7176
this.deployer = Optional.ofNullable(deployer);
@@ -115,7 +120,7 @@ public void accept(List<String> strings) {
115120
if (targets.isEmpty() && target == null) {
116121
// Currently forcedDependencies() is not implemented for gradle.
117122
// So, let's give users a meaningful warning message.
118-
Deployer deployer = getDeployer();
123+
Deployer deployer = getDeployerFromDependencies(appModel);
119124
extension().forcedPropertiesProperty().convention(
120125
getProject().provider(() -> {
121126
Map<String, String> props = new HashMap<>();
@@ -125,12 +130,11 @@ public void accept(List<String> strings) {
125130
return props;
126131
}));
127132
String requiredDeployerExtension = deployer.getExtension();
128-
Optional<String> requiredContainerImageExtension = requiredContainerImageExtension();
133+
Optional<String> requiredContainerImageExtension = requiredContainerImageExtension(appModel);
129134

130-
List<String> projectDependencies = getProject().getConfigurations().stream()
131-
.flatMap(c -> c.getDependencies().stream())
132-
.map(d -> d.getName())
133-
.collect(Collectors.toList());
135+
List<String> projectDependencies = appModel.getDependencies().stream()
136+
.map(ArtifactCoords::getArtifactId)
137+
.toList();
134138

135139
if (!projectDependencies.contains(requiredDeployerExtension)) {
136140
abort("Task: {} requires extensions: {}\n" +
@@ -188,27 +192,28 @@ public void accept(Boolean success) {
188192
}
189193
}
190194

191-
public Deployer getDeployer() {
192-
return getDeployer(Deployer.kubernetes);
195+
public Deployer getDeployerFromDependencies(ApplicationModel appModel) {
196+
return getDeployerFromDependencies(appModel, Deployer.kubernetes);
193197
}
194198

195-
public Deployer getDeployer(Deployer defaultDeployer) {
199+
public Deployer getDeployerFromDependencies(ApplicationModel appModel, Deployer defaultDeployer) {
196200
return deployer
197-
.or(() -> DeploymentUtil.getEnabledDeployer())
198-
.or(() -> getProjectDeployers().stream().findFirst())
201+
.or(DeploymentUtil::getEnabledDeployer)
202+
.or(() -> getProjectDeployers(appModel).stream().findFirst())
199203
.map(Deployer::valueOf)
200204
.orElse(defaultDeployer);
201205
}
202206

203-
public Optional<String> requiredContainerImageExtension() {
207+
public Optional<String> requiredContainerImageExtension(ApplicationModel appModel) {
204208
return imageBuilder.map(b -> "quarkus-container-image-" + b)
205-
.or(() -> imageBuild ? Arrays.stream(getDeployer().requiresOneOf).findFirst() : Optional.empty());
209+
.or(() -> imageBuild ? Arrays.stream(getDeployerFromDependencies(appModel).requiresOneOf).findFirst()
210+
: Optional.empty());
206211
}
207212

208-
private Set<String> getProjectDeployers() {
209-
return getProject().getConfigurations().stream().flatMap(c -> c.getDependencies().stream())
210-
.map(d -> d.getName())
211-
.filter(d -> Arrays.stream(Deployer.values()).map(Deployer::getExtension).anyMatch(e -> d.equals(e)))
213+
private Set<String> getProjectDeployers(ApplicationModel appModel) {
214+
return appModel.getRuntimeDependencies().stream()
215+
.map(ArtifactCoords::getArtifactId)
216+
.filter(d -> Arrays.stream(Deployer.values()).map(Deployer::getExtension).anyMatch(d::equals))
212217
.map(d -> d.replaceAll("^quarkus\\-", ""))
213218
.collect(Collectors.toSet());
214219
}

0 commit comments

Comments
 (0)