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

新手上路,请多包涵

我无法弄清楚如何让这个工作。

设想:

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

我想要的是

  • 使用一个变量(为每个开发人员机器定义),它指向一个 JDK 的安装,它将用于构建整个应用程序 / 测试 / …

我想过拥有 gradle.properties 文件,定义变量。就像是

JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>

我不想要的

  • 指向 JAVA_HOME 到所需的 JDK

我可以接受很多建议:

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

问题:

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

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

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

原文由 bully 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

两种方式

  1. gradle.properties.gradle 目录中 HOME_DIRECTORY 设置 org.gradle.java.home=/path_to_jdk_directory

或者:

  1. 在你的 build.gradle
     compileJava.options.fork = true
    compileJava.options.forkOptions.executable = '/path_to_javac'

原文由 First Zero 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

这样你的构建不依赖于一些具体的路径。

原文由 mirmdasif 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题