RFR: 8360586: JavaFX build uses deprecated features that will be removed in gradle 9

Ambarish Rapte arapte at openjdk.org
Tue Sep 23 21:13:48 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.

-------------

Commit messages:
 - replace project.exec and project.javaexec

Changes: https://git.openjdk.org/jfx/pull/1918/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1918&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8360586
  Stats: 250 lines in 13 files changed: 132 ins; 1 del; 117 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