如何告诉 Gradle 使用特定的 JDK 版本?

2022-08-31 04:29:12

我不知道如何让它工作。

场景:

  • 我有一个使用 gradle 构建的应用程序
  • 该应用程序使用JavaFX

我想要什么

  • 使用一个变量(根据开发人员计算机定义),该变量指向JDK的安装,该JDK将用于构建整个应用程序/测试/...

我想过拥有文件,定义变量。类似的东西gradle.properties

JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>

我不想要的

  • 指向所需的 JDKJAVA_HOME

我可以接受许多建议:

  • 一个定义系统环境变量的解决方案,我可以在我的build.gradle脚本中签入该变量
  • 在 gradle.properties 中定义的变量
  • 仅覆盖生成上下文的 JAVA_HOME 变量(类似于use JAVA_HOME=<my special JDK path defined somewhere else defined>)
  • 我没有想到的其他事情

问题:

  • 如何将变量(如何定义,作为 系统中环境变量中的变量,...)连接到构建过程?gradle.properties

我有多个JDK7可用,需要指向特殊版本(最低JDK_u版本)。

任何答案都是值得赞赏的,我感谢每一个指向正确方向的提示。


答案 1

两种方式

  1. 在集合的目录中gradle.properties.gradleHOME_DIRECTORYorg.gradle.java.home=/path_to_jdk_directory

艺术

  1. 在您的build.gradle

     compileJava.options.fork = true
     compileJava.options.forkOptions.executable = '/path_to_javac'
    

答案 2

如果在 gradle.properties 中添加JDK_PATH,则构建将依赖于该特定路径。而是使用以下命令行参数化程序运行 gradle 任务

gradle build -Dorg.gradle.java.home=/JDK_PATH

这样,您的构建就不依赖于某些具体路径。


推荐