我刚刚开始使用Gradle,几乎可以肯定地错过了一些明显的东西。我的系统默认安装了Java 7,但我希望所有的Gradle项目都默认使用Java 8。所以,我创建了一个~/gradle.properties
文件,并把下面的变量:Gradle忽略gradle.properties
$ cat ~/gradle.properties
org.gradle.java.home = /usr/lib/jvm/java-8-openjdk-amd64
但这似乎并没有兑现。首先,如果我尝试建立我的项目,我得到:
Execution failed for task ':compileJava'.
> invalid source release: 1.8
此外,gradle --version
给出:
$ gradle --version
------------------------------------------------------------
Gradle 1.5
------------------------------------------------------------
Gradle build time: Wednesday, October 8, 2014 8:21:39 AM UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.9.4 compiled on October 7 2014
Ivy: non official version
JVM: 1.7.0_79 (Oracle Corporation 24.79-b02)
OS: Linux 3.16.0-4-amd64 amd64
但是,如果我复制~/gradle.properties
我的项目目录(用的build.gradle文件的目录)或如果我运行JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 gradle assemble
它的作品。因此,我的gradle.properties文件中没有语法错误或任何内容,并且JDK路径是正确的。由于某些原因,如果属性文件位于我的主目录中,它将被忽略。
请注意,我的项目目录中没有gradle.properties,我也尝试将该文件放入~/.gradle/gradle.properties
。我也做了一堆谷歌和StackOverflow搜索,只是无法找到这个看似明显的问题的答案。
我想你想'〜/ .gradle/gradle.properties'。否则,你可以在你的构建文件中写一些东西,比如'task homedir << {println System.getenv('GRADLE_USER_HOME')}'来查看你的home位置(作为'gradle homedir'运行)。 – RAnders00
@ RAnders00,谢谢你的想法。 'gradle homdir'返回'任务homedir << {println System.getenv('GRADLE_USER_HOME')}'。奇怪的是'gradle -g〜assemble'解决了这个问题,所以看起来Gradle并不认为我的主目录是gradle home目录。然而,gradle确实为我创建了一个'〜.gradle'目录,并且在那里移动'gradle.properties'没有任何帮助。我假设一个修正就是设置GRADLE_USER_HOME环境变量。 –
划痕。我重试了在'〜/ .gradle/gradle.properties'中放入'gradle.properties'的测试,现在它可以工作。在我最初的实验中必须做错事。看起来默认gradle home位置的gradle文档是错误的,至少对于Debian Jessie版本的软件包来说是这样。 –