我们使用gradle构建我们的Java项目,有些基于JDK7,有些基于JDK8。我知道org.gradle.java.home的属性,但在我看来它似乎有缺陷。
如果我在'~/. gradle /gradle.properties‘中配置它,这将迫使我在所有gradle项目中使用相同的JDK。
如果我在'/my- Git -project/gradle.properties‘中配置它,这将迫使我在共享Git存储库中引用本地JDK安装。到JDK的路径不属于那里。
我基本上想要的是与‘~/..gradle/gradle.properties’中类似的内容:
systemProp.jdk8=/my/local/path/to/jdk8
systemProp.jdk7=/my/local/path/to/jdk7并在“/my-git-project/gradle.properties”中的源代码管理下:
org.gradle.java.home=$systemProp.jdk8最好的解决方案/解决办法是什么?
发布于 2016-01-29 18:55:52
这更像是一个过程问题,而不是一个分级或Java问题。最终,您必须强迫每个人指定他们的各种JAVA_HOMEs,而不需要繁琐。你有几种选择:
但是,当然,现在每个人每次运行构建时都必须在命令行中输入一些可怕的垃圾。
并不是每个人都想使用相同的路径,特别是当你有Mac/Unix和PC用户的时候。
2b。与其使用相同的路径,每个人都可以使用他们的自定义值修改他们的本地gradle.properties,然后永远不要签入他们的修改。
主要问题是:有人会完全检查他们当地的价值观,把CI和其他人搞砸。
这可能是你最好的选择。您有一个签入的模板文件,但每个人都必须将其复制到gradle.properties并填写其特定值。您需要设置您的CI来执行类似的操作,或者签入类似于gradle.ci.properties的内容,并让CI使用它。但是,每个人只需要这样做一次,而不是每次构建一次。不幸的是,每次模板更改时,他们都必须更新自己的个人文件(除非您编写了一些代码来这样做)。
发布于 2016-01-29 10:28:41
我们这样处理这个问题:
The one who starts the build is responsible for properly setting JAVA_HOME在开发人员机器上,这可能是脆弱的。但是,如果您是从专用的构建服务器构建和部署的,那么它可以很好地工作。
https://stackoverflow.com/questions/35081680
复制相似问题