首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使gradle在编译时使用正确的JDK?

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

Stack Overflow用户
提问于 2016-01-29 10:03:22
回答 2查看 666关注 0票数 5

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

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

如果我在'/my- Git -project/gradle.properties‘中配置它,这将迫使我在共享Git存储库中引用本地JDK安装。到JDK的路径不属于那里。

我基本上想要的是与‘~/..gradle/gradle.properties’中类似的内容:

代码语言:javascript
复制
systemProp.jdk8=/my/local/path/to/jdk8
systemProp.jdk7=/my/local/path/to/jdk7

并在“/my-git-project/gradle.properties”中的源代码管理下:

代码语言:javascript
复制
org.gradle.java.home=$systemProp.jdk8

最好的解决方案/解决办法是什么?

EN

回答 2

Stack Overflow用户

发布于 2016-01-29 18:55:52

这更像是一个过程问题,而不是一个分级或Java问题。最终,您必须强迫每个人指定他们的各种JAVA_HOMEs,而不需要繁琐。你有几种选择:

  1. 命令行:./gradlew -Dorg.gradle.java.home=/path_to_jdk_目录

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

  1. gradle.properties和签入路径。然后,让每个人都走同一条路。

并不是每个人都想使用相同的路径,特别是当你有Mac/Unix和PC用户的时候。

2b。与其使用相同的路径,每个人都可以使用他们的自定义值修改他们的本地gradle.properties,然后永远不要签入他们的修改。

主要问题是:有人会完全检查他们当地的价值观,把CI和其他人搞砸。

  1. gradle.properties.template签入,每个人都创建自己的gradle.properties;将gradle.properties放在.gitignore中。

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

票数 1
EN

Stack Overflow用户

发布于 2016-01-29 10:28:41

我们这样处理这个问题:

代码语言:javascript
复制
The one who starts the build is responsible for properly setting JAVA_HOME

在开发人员机器上,这可能是脆弱的。但是,如果您是从专用的构建服务器构建和部署的,那么它可以很好地工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35081680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档