2015-10-08 84 views
0

我刚刚开始使用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搜索,只是无法找到这个看似明显的问题的答案。

+2

我想你想'〜/ .gradle/gradle.properties'。否则,你可以在你的构建文件中写一些东西,比如'task homedir << {println System.getenv('GRADLE_USER_HOME')}'来查看你的home位置(作为'gradle homedir'运行)。 – RAnders00

+0

@ RAnders00,谢谢你的想法。 'gradle homdir'返回'任务homedir << {println System.getenv('GRADLE_USER_HOME')}'。奇怪的是'gradle -g〜assemble'解决了这个问题,所以看起来Gradle并不认为我的主目录是gradle home目录。然而,gradle确实为我创建了一个'〜.gradle'目录,并且在那里移动'gradle.properties'没有任何帮助。我假设一个修正就是设置GRADLE_USER_HOME环境变量。 –

+0

划痕。我重试了在'〜/ .gradle/gradle.properties'中放入'gradle.properties'的测试,现在它可以工作。在我最初的实验中必须做错事。看起来默认gradle home位置的gradle文档是错误的,至少对于Debian Jessie版本的软件包来说是这样。 –

回答

4

长话短说,gradle这个读取~/.gradle/gradle.properties~/gradle-properties gradle.properties和文档是关于很清楚。总之,我是一个关节头。