当前位置: 首页 > 知识库问答 >
问题:

如何让gradle在编译时使用正确的JDK?

皇甫雨华
2023-03-14

我们使用gradle构建我们的Java项目,有些基于JDK7,有些基于JDK8。我知道org.gradle.java.home属性,但在我看来它有缺陷。

如果我在'~/.gradle/gradle.properties'中配置它,这将迫使我对所有gradle项目使用相同的JDK。

systemProp.jdk8=/my/local/path/to/jdk8
systemProp.jdk7=/my/local/path/to/jdk7
org.gradle.java.home=$systemProp.jdk8

对此最好的解决方案/变通办法是什么?

共有1个答案

黎征
2023-03-14

这更多的是一个过程问题,而不是Gradle或Java问题。最终,您必须强制每个人指定自己的各种JAVA_HOMEs而不麻烦。您有几个选项:

  1. 命令行:./gradlew-dorg.gradle.java.home=/path_to_jdk_directory

但是,当然,现在每个人都必须在每次运行构建时在命令行中键入一些可怕的垃圾。

这可能是你最好的选择。您签入了一个模板文件,但每个人都必须将其复制到gradle.properties并填写它们的特定值。您需要设置配置项来执行类似的操作,或者签入类似于gradle.CI.properties的内容并让配置项使用这些内容。但是,每个人只需要这样做一次,而不是每次构建一次。不幸的是,他们将不得不在每次模板更改时更新他们的个人文件(除非您编写一些代码来这样做)。

 类似资料:
  • Gradle的Groovy插件声称它支持联合编译,允许自由混合和匹配Groovy和Java代码,并在两个方向上都有依赖关系“。 但是,我不认为这适用于测试代码。 我在使用位于中的类。 当尝试使用Gradle构建时,我会遇到如下错误: 请注意,是一个尚未编译的Groovy类(在Gradle输出中,我可以看到它在尝试之前没有运行,因为前者依赖于后者)。 我能够使用groovy-eclipse插件与Ma

  • 问题内容: 我试图让cron调用正确的PATH。当我从外壳运行Python脚本时,脚本运行良好,因为它使用了bashrc中设置的PATH,但是当我使用cron时,bashrc中并未使用所有PATH。是否有一个文件可以像bashrc一样输入cron的PATH或从bashrc调用PATH的方法? 抱歉,我的措词不正确,我可以运行正确的脚本(这意味着crontab中脚本的PATH不是这里的问题),只是该

  • 我想在Java项目中包含V8(“J2V8”)的Java绑定。原因是:(i)V8 JavaScript引擎比JRE附带的JavaScript引擎快得多;(ii)我使用的库仅在JavaScript中可用,并且要花费大量的精力到Java端口。 null 我目前正在创建脂肪罐子使用阴影插件。 注意,该项目不是Android项目。在那里,有了Android插件,这似乎是直截了当的。 第一个想法是引入配置和特

  • 问题内容: 我有一个文件和。 当我进行调试构建时,我得到: 如何将添加到基础任务?关于Java编译选项的Gradle插件用户指南无济于事。 问题答案: 我根据有关操作任务的Gradle插件用户指南和有关JavaCompile的Gradle DSL文档 找到了以下解决方案: 添加到: 应用程序变体在Gradle的配置阶段,所需的任务也不存在,因此我在执行阶段进行了修改。

  • 在我的应用程序中,我有一个由第三方开发的库,不幸的是,它包含相当多的lint和javac警告。我想忽略这两种类型的警告,因为它们无法由我们的团队修复,并且它们会污染我们的构建日志。我尝试将以下内容添加到库build.gradle文件中: 在Android块中 我还在build.gradle文件末尾添加了以下内容: 不幸的是,每当“:compileDebugJavaWithJavac”运行时,它仍然

  • 我下载了cratedb的源代码,但无法正确编译,下面是详细说明:jdk:1.8 /workspace/crate编译 应该是elasticsearch包不见了,下一步怎么办? 谢谢!