![](/img/trans.png)
[英]How do you specify buildConfigField in Gradle Java-library Project build script
[英]How do I specify the required Java version in a Gradle build?
我想在我的 Gradle 构建文件中设置所需的 Java 版本(例如 7 或 8),而不必指定本地 JDK 安装的实际路径。
这可能吗?
TLDR; 感谢@franklin-yu “targetCompatibility = '1.7' -> 您的用户可以使用 8 编译并使用 7 运行。”
请参阅Gradle,“sourceCompatibility”与“targetCompatibility”?
targetCompatibility = '1.7'
可以解决例如 Java 7 的问题
使用sourceCompatibility = '1.7'
作为语言级别
你可以试试这个:
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
tasks.withType<JavaCompile> {
options.compilerArgs.addAll(arrayOf("--release", "8"))
}
这也将为您提供 JDK 合规性。 您还可以看到以下相关问题:
-release
编译器参数添加便捷方法在build.gradle
文件中,添加以下两行:
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
targetCompatibility
定义了生成的 JVM 字节码版本(这是应用程序用户需要的版本)。 sourceCompatibility
定义了允许哪些源代码结构(例如,您需要Java 1.8 或更高版本才能在源代码中使用lambda 表达式)。
基于 CletusW 的回答。 在windows 10中,好像不会自动选择新安装的Java,所以我手动检查一下。
apply plugin: 'java'
java.toolchain.languageVersion = JavaLanguageVersion.of(15) // auto install
// check JDK version
if (!System.getProperty("java.home").contains(java.toolchain.languageVersion.get().toString())) {
def msg = ('JDK in this project: ' + System.getProperty('java.home') + '\n' +
'In this project, you should use JDK-' + java.toolchain.languageVersion.get())
throw new GradleException(msg)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.