RFR: 8360586: JavaFX build uses deprecated features that will be removed in gradle 9 [v2]
Ambarish Rapte
arapte at openjdk.org
Wed Sep 24 03:22:16 UTC 2025
> **Issue**:
> Below two Gradle 9.0.0 specific warnings are observed with current grade 8.14.2
> 1. The `Project.exec(Closure)` method has been deprecated. This is scheduled to be removed in Gradle 9.0
> 2. Using method `javaexec(Closure)` has been deprecated. This is scheduled to be removed in Gradle 9.0.
>
> Both these methods are removed in Gradle 9.0.0.
> Hence they should be replaced with appropriate APIs.
> Refer: https://docs.gradle.org/8.14.2/userguide/upgrading_version_8.html#deprecated_project_exec
>
> **Fix**:
> Both warnings can be fixed by replacing the calls with` ExecOperations.exec(Action)`.
> There are two different scenarios where we use the above two APIs.
> - Gradle files
> - Groovy class files
> => In Both the scenarios, we have to use the `ExecOperations.exec(Action)`, but the approach differs.
>
> 1. Gradle file
> - The calls are simply replaced as,
> * `Project.exec {` is replaced with `execOps.exec { ExecSpec spec ->`
> * `Project.javaexex {` is replaced with `execOps.javaexec { JavaExecSpec spec ->`
> 2. For Groovy classes
> - `ExecOperations` needs to be **injected** using `@Inject` tag
> 1. `NativeCompileTask` class
> - In the `NativeCompileTask` class, a method `execCompile()` is added which executes an action.
> - The child classes of `NativeCompileTask`, use this `execCompile()` method.
> 2. Other classes are not related to each other. They independently execute the respective action.
>
> **Verification**:
> 1. Run all gradle tasks with **—warning-mode all** option, with gradle 8.14.2
> 2. No Gradle 9.0.0 specific warning is seen in build log
> 4. Build/all tasks complete successfully.
Ambarish Rapte has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision:
- Merge branch 'master' into gradle-900-warnings
- replace project.exec and project.javaexec
-------------
Changes:
- all: https://git.openjdk.org/jfx/pull/1918/files
- new: https://git.openjdk.org/jfx/pull/1918/files/37c11744..14d07fa9
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jfx&pr=1918&range=01
- incr: https://webrevs.openjdk.org/?repo=jfx&pr=1918&range=00-01
Stats: 572 lines in 31 files changed: 463 ins; 39 del; 70 mod
Patch: https://git.openjdk.org/jfx/pull/1918.diff
Fetch: git fetch https://git.openjdk.org/jfx.git pull/1918/head:pull/1918
PR: https://git.openjdk.org/jfx/pull/1918
More information about the openjfx-dev
mailing list