gradle.properties
文件通常包含在版本控制中,因此所有贡献者都可以拥有一致的环境,因此你不能在其中存储用户定义的属性,并且用户定义的属性同时应用于所有项目。我想为org.gradle.java.home
与我的默认 JDK 不兼容的项目设置属性,但我不能使用项目级别gradle.properties
,因为不同机器上的 JDK 路径不一样,我只想为特定项目更改 JDK 路径,而不是全部他们。
有没有一种方便的方法来为单个项目指定本地 Gradle 属性?
一种可能的解决方案:
jdk-8
,jdk-11
// file ~/.gradle/gradle.properties
jdk-8=/path/to/jdk8
jdk-11=/path/to/jdk11
jdk-8
并将jdk-11
在任何构建中由 Gradle 解析为属性。
javaCompile
在 root 中为特定项目配置任务build.gradle.kts
:fun Project.setupCustomJdk(jdkAlias: String) {
findProperty(jdkAlias)?.toString()?.trim()?.let { customJdkPath ->
tasks.withType<JavaCompile> {
options.isFork = true
options.forkOptions.javaHome = File(customJdkPath)
logger.info("Task javaCompile using JDK from $customJdkPath")
}
} ?: logger.warn("Unknown property '$jdkAlias'")
}
project(":app").setupCustomJdk("jdk-11")
project(":lib").setupCustomJdk("jdk-8")