|
20 | 20 | import org.gradle.api.NamedDomainObjectContainer; |
21 | 21 | import org.gradle.api.NamedDomainObjectSet; |
22 | 22 | import org.gradle.api.Project; |
| 23 | +import org.gradle.api.Task; |
23 | 24 | import org.gradle.api.artifacts.Configuration; |
24 | 25 | import org.gradle.api.artifacts.ConfigurationContainer; |
25 | 26 | import org.gradle.api.attributes.Attribute; |
|
65 | 66 | abstract public class JavaModulePackagingExtension { |
66 | 67 | private static final Attribute<Boolean> JAVA_MODULE_ATTRIBUTE = Attribute.of("javaModule", Boolean.class); |
67 | 68 | private static final String INTERNAL = "internal"; |
| 69 | + private static final String JPACKAGE = "jpackage"; |
68 | 70 |
|
69 | 71 | abstract public Property<String> getApplicationName(); |
70 | 72 | abstract public Property<String> getApplicationVersion(); |
@@ -236,7 +238,7 @@ private void registerTargetSpecificTasks(Target target, String applicationJarTas |
236 | 238 | JavaPluginExtension java = getProject().getExtensions().getByType(JavaPluginExtension.class); |
237 | 239 | JavaApplication application = getProject().getExtensions().getByType(JavaApplication.class); |
238 | 240 |
|
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 -> { |
240 | 242 | t.getJavaInstallation().convention(getJavaToolchains().compilerFor(java.getToolchain()).get().getMetadata()); |
241 | 243 | t.getOperatingSystem().convention(target.getOperatingSystem()); |
242 | 244 | t.getArchitecture().convention(target.getArchitecture()); |
@@ -277,18 +279,22 @@ private void registerTargetSpecificTasks(Target target, String applicationJarTas |
277 | 279 | maybeAddJpackageLifecycleTask(tasks, target, jpackage); |
278 | 280 | } |
279 | 281 |
|
280 | | - private void maybeAddJpackageLifecycleTask(TaskContainer tasks, Target target, TaskProvider<Jpackage> jpackage) { |
| 282 | + private void maybeAddJpackageLifecycleTask(TaskContainer tasks, Target target, TaskProvider<Jpackage> targetJpackage) { |
281 | 283 | // 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 -> { |
287 | 289 | t.setGroup(BUILD_GROUP); |
288 | 290 | t.setDescription("Build the package for the current host system"); |
289 | | - t.dependsOn(jpackage); |
290 | 291 | }); |
291 | 292 | } |
| 293 | + jpackage.configure(t -> { |
| 294 | + if (HostIdentification.isHostTarget(target)) { |
| 295 | + t.dependsOn(targetJpackage); |
| 296 | + } |
| 297 | + }); |
292 | 298 | } |
293 | 299 |
|
294 | 300 | private Configuration maybeCreateInternalConfiguration() { |
|
0 commit comments