openjfx / javafx-gradle-plugin

Gradle plugin that makes it easy to work with JavaFX 11+
https://openjfx.io/
BSD 3-Clause "New" or "Revised" License
347 stars 59 forks source link

Update JavaFXPlugin to lazy-load and configure task #142

Closed mattbertolini closed 10 months ago

mattbertolini commented 1 year ago

Update JavaFXPlugin to lazy-load and configure task

Motivation

When using the JavaFX Gradle plugin in conjunction with Gradle Enterprise, the build scan identified that this plugin was eagerly loading a task into the task graph when it did not need to. This slows down large builds with hundreds of modules and tasks. Since Gradle 5.0 the concept of task configuration avoidance was added. This helps speed up builds by only registering tasks when they are needed. This commit updates the JavaFX plugin to use task configuration avoidance.

Modifications

Moving to task configuration avoidance is fairly straightforward. There is a guide in the documentation. The instance of the create() method was changed to the corresponding register() method.

Result

The result is a Gradle plugin that leverages task configuration avoidance improving build times.

sschuberth commented 10 months ago

This PR has conflicts now that https://github.com/openjfx/javafx-gradle-plugin/pull/151 was merged.