我们使用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
最佳解决方案/解决方法是什么?
答案 0 :(得分:1)
这更像是一个过程问题,而不是Gradle或Java问题。最终,你必须强迫每个人指定他们的各种JAVA_HOME而不会繁重。您有几种选择:
但是,当然,现在每个人每次运行构建时都必须在命令行中键入一些可怕的垃圾。
不是每个人都想要使用相同的路径,特别是如果你有Mac / Unix和PC用户。
2B。每个人都可以使用自定义值修改本地gradle.properties,而不是使用相同的路径,然后永远不会签入修改。
主要问题:某人完全会检查他们的本地价值并搞砸CI和其他所有人。
这可能是你最好的选择。您有一个签入的模板文件,但每个人都必须将其复制到gradle.properties并填写其特定值。您需要设置CI以执行类似的操作,或者签入类似gradle.ci.properties的内容并让CI使用它。但是,每个人只需要执行一次而不是每次构建一次。不幸的是,每次模板更改时,他们都必须更新他们的个人文件(除非你写一些代码来做到这一点)。
答案 1 :(得分:0)
我们应对这样的问题:
The one who starts the build is responsible for properly setting JAVA_HOME
在开发者机器上可能很脆弱。但是,如果您从专用的构建服务器构建和部署,它可以完美地运行。