java - 具有特定JDK的Gradle构建项目

标签 java grails gradle build.gradle

我有多个Grails插件的Grails项目(grails 2.3.11)。一个主要的Grails项目以及一些用户定义的Grails插件和核心Java项目创建了一个完整的应用程序。到目前为止,这些项目都是使用Ant构建器构建的。最近升级了使用Gradle的构建过程。

gradle过程的问题在于,某些项目需要使用jdk 1.7进行构建,而另一些项目则需要使用jdk 1.8进行构建。为了修复它,我将java_home设置为指向jdk 1.7。然后在项目目录中创建了gradle.properties文件,该文件需要使用jdk 1.8进行编译。设置属性org.gradle.java.home指向jdk 1.8。现在,当我从此类项目中打印java_home值时,我发现它仍在选择jdk 1.7(将其设置为环境变量)。

这是我的gradle compileJava任务:

compileJava {
    options.encoding = 'UTF-8'
    def env = System.getenv("JAVA_HOME")
    println "Compile Java: JAVAHOME = ${env}"
    dependsOn ':core:updateversiondotjava'
    logging.captureStandardOutput LogLevel.DEBUG
}

用1.7构建的项目都是Grails项目和Grails用户定义的插件。用1.7构建它们的原因是为了避免grails版本升级。因为grails 2.3.x或更低版本不支持Java 1.8。

谁能指导我做错了什么?

最佳答案

我记得在测试中在Java 8上运行的Grails 2.3.11。 Grails 2.3的早期版本无法在Java 8上运行。我知道官方支持始于2.4.x,但是您是否在2.3.11应用程序中尝试过Java 8?

关于java - 具有特定JDK的Gradle构建项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40318830/

相关文章:

Java 8 流立即求和并计数

java - CORS 阻止我进行 API 调用

grails - 更改/重新编译代码时,Grails JMS/ActiveMQ停止工作

android - 最新版本的Gradle 2.14.1的Gradle同步失败

java - Gradle 中的 InstallDebug 在哪里?如何安装测试Android应用程序?

java - Java中的并发和阻塞队列

javascript函数按顺序调用,由JSP制作

mysql - Grails 中属性的自引用关系?

javascript - 无法格式化/解析此日期

android - 使用 gradle 进行 Android 仪器测试的命令行参数