Skip to content

Commit 06a2537

Browse files
committed
Check host target for 'jpackage' task more lazily
1 parent 2af6c75 commit 06a2537

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/main/java/org/gradlex/javamodule/packaging/JavaModulePackagingExtension.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.gradle.api.NamedDomainObjectContainer;
2121
import org.gradle.api.NamedDomainObjectSet;
2222
import org.gradle.api.Project;
23+
import org.gradle.api.Task;
2324
import org.gradle.api.artifacts.Configuration;
2425
import org.gradle.api.artifacts.ConfigurationContainer;
2526
import org.gradle.api.attributes.Attribute;
@@ -65,6 +66,7 @@
6566
abstract public class JavaModulePackagingExtension {
6667
private static final Attribute<Boolean> JAVA_MODULE_ATTRIBUTE = Attribute.of("javaModule", Boolean.class);
6768
private static final String INTERNAL = "internal";
69+
private static final String JPACKAGE = "jpackage";
6870

6971
abstract public Property<String> getApplicationName();
7072
abstract public Property<String> getApplicationVersion();
@@ -236,7 +238,7 @@ private void registerTargetSpecificTasks(Target target, String applicationJarTas
236238
JavaPluginExtension java = getProject().getExtensions().getByType(JavaPluginExtension.class);
237239
JavaApplication application = getProject().getExtensions().getByType(JavaApplication.class);
238240

239-
TaskProvider<Jpackage> jpackage = tasks.register("jpackage" + capitalize(target.getName()), Jpackage.class, t -> {
241+
TaskProvider<Jpackage> jpackage = tasks.register(JPACKAGE + capitalize(target.getName()), Jpackage.class, t -> {
240242
t.getJavaInstallation().convention(getJavaToolchains().compilerFor(java.getToolchain()).get().getMetadata());
241243
t.getOperatingSystem().convention(target.getOperatingSystem());
242244
t.getArchitecture().convention(target.getArchitecture());
@@ -277,18 +279,22 @@ private void registerTargetSpecificTasks(Target target, String applicationJarTas
277279
maybeAddJpackageLifecycleTask(tasks, target, jpackage);
278280
}
279281

280-
private void maybeAddJpackageLifecycleTask(TaskContainer tasks, Target target, TaskProvider<Jpackage> jpackage) {
282+
private void maybeAddJpackageLifecycleTask(TaskContainer tasks, Target target, TaskProvider<Jpackage> targetJpackage) {
281283
// if a task already exists, do nothing to avoid conflciting with other plugins
282-
if (tasks.getNames().contains("jpackage")) {
283-
return;
284-
}
285-
if (HostIdentification.isHostTarget(target)) {
286-
tasks.register("jpackage", t -> {
284+
TaskProvider<Task> jpackage;
285+
if (tasks.getNames().contains(JPACKAGE)) {
286+
jpackage = tasks.named(JPACKAGE);
287+
} else {
288+
jpackage = tasks.register(JPACKAGE, t -> {
287289
t.setGroup(BUILD_GROUP);
288290
t.setDescription("Build the package for the current host system");
289-
t.dependsOn(jpackage);
290291
});
291292
}
293+
jpackage.configure(t -> {
294+
if (HostIdentification.isHostTarget(target)) {
295+
t.dependsOn(targetJpackage);
296+
}
297+
});
292298
}
293299

294300
private Configuration maybeCreateInternalConfiguration() {

0 commit comments

Comments
 (0)