如何告诉gradle jdk必须是1.8,而不设置JAVA_HOME,如ant

如何告诉gradle jdk必须是1.8,而不设置JAVA_HOME,如ant,gradle,Gradle,我读了这篇文章 这似乎没有抓住重点。开发人员应该负责将自己的JAVA_主页设置到安装它的位置,这在不同的操作系统上是不同的 我想要的是设置应该使用哪一个jdk主版本,比如1.8,这样,如果他们的JAVA_HOME指向1.7,并显示一条很好的错误消息,说请修复JAVA_HOME变量,那么它就会失败 这在格拉德尔可能吗 重要的部分是在我的git repo中有一些东西,上面写着gradle.jdk.must.be=1.8,如果使用JAVA_HOME或从他们的主目录中使用gradle.properti

我读了这篇文章

这似乎没有抓住重点。开发人员应该负责将自己的JAVA_主页设置到安装它的位置,这在不同的操作系统上是不同的

我想要的是设置应该使用哪一个jdk主版本,比如1.8,这样,如果他们的JAVA_HOME指向1.7,并显示一条很好的错误消息,说请修复JAVA_HOME变量,那么它就会失败

这在格拉德尔可能吗

重要的部分是在我的git repo中有一些东西,上面写着gradle.jdk.must.be=1.8,如果使用JAVA_HOME或从他们的主目录中使用gradle.properties或其他什么,它会尝试使用JAVA_HOME编译,如果失败,它应该很好地告诉他们设置JAVA_HOME或gradle.properties或其他什么

相关职位:

关键是,当有人签出一个项目时,如果它没有编译,并且他们不知道为什么,并且没有错误地告诉他们要修复什么,这有点令人困惑

谢谢,
Dean

task checkJavaVersion
task checkJavaVersion awesome,在命令行上就像一个符咒。(gradle插件仍然可以导入它,没有消息:(但是哦,好吧,足够近了)。真棒,就像命令行上的符咒一样。(gradle插件仍然可以导入它,没有消息:(但是哦,好吧,足够近了)。
task checkJavaVersion << {
    if (!JavaVersion.current().isJava8()) {
        String message = "ERROR: Java 1.8 required but " +
                         JavaVersion.current() + 
                         " found. Change your JAVA_HOME environment variable.";
        throw new IllegalStateException(message);
    }
}

compileJava.dependsOn checkJavaVersion