如何解决如何检查在Gradle构建过程中使用了哪个已安装的JDK
您可以添加一个任务,该任务在执行时打印所需的内容(Kotlin DSL):
tasks {
val j by creating {
doLast {
println(System.getProperty("java.home"))
}
}
}
Groovy DSL:
tasks.register("j") {
doLast {
println System.getProperty("java.home")
}
}
然后执行./gradlew j
:
/usr/lib/jvm/java-8-openjdk/jre
为什么要gradlew
使用另一个JVM?看一下该脚本,您将看到它使用JAVA_HOME
变量来搜索JVM。因此,您所指向的版本可能PATH
不相同JAVA_HOME
。
解决方法
这是我的输出gradle -v
(在使用包装器的项目中):
$ ./gradlew -v
------------------------------------------------------------
Gradle 5.0
------------------------------------------------------------
Build time: 2018-11-26 11:48:43 UTC
Revision: 7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987
Kotlin DSL: 1.0.4
Kotlin: 1.3.10
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.1 (Oracle Corporation 11.0.1+13-LTS)
OS: Linux 3.10.0-862.11.6.el7.x86_64 amd64
特别是请看这行:
JVM: 11.0.1 (Oracle Corporation 11.0.1+13-LTS)
我希望切换到OpenJDK11。因此请选择它,如下所示:
# alternatives --config java
There are 4 programs which provide 'java'.
Selection Command
-----------------------------------------------
* 1 /usr/java/jdk-11.0.1/bin/java
+ 2 /usr/local/jdk-11.0.1/bin/java
3 /usr/java/jre1.8.0_191-i586/bin/java
4 /usr/java/jdk1.8.0_191-amd64/jre/bin/java
Enter to keep the current selection[+],or type selection number: 2
# java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13,mixed mode)
但是gradle
-v
输出没有差异。因此,我在网上搜索并找到了一些方法(请参阅此处):
-
编辑
gradle.properties
档案 -
使用
-Dorg.gradle.java.home
命令行选项 -
编辑
build.gradle
档案
我使用前两种方式。两者都起作用(测试我是否切换到JDK 8
然后运行build
任务。由于Java 8不支持我的代码中的某些新功能,因此任务失败)。但是
结果gradle -v
仍然保持不变!即使使用第二种方式:
# ./gradlew -Dorg.gradle.java.home=/usr/java/jdk1.8.0_191-amd64 -v
------------------------------------------------------------
Gradle 5.0
------------------------------------------------------------
Build time: 2018-11-26 11:48:43 UTC
Revision: 7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987
Kotlin DSL: 1.0.4
Kotlin: 1.3.10
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.1 (Oracle Corporation 11.0.1+13-LTS)
OS: Linux 3.10.0-862.11.6.el7.x86_64 amd64
所以问题是 如何检查在build
过程中Gradle使用了哪个JDK版本?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。