如何为多个项目配置 Gradle 中的多个 gradle.properties 文件?

How configure multiple gradle.properties files in Gradle for multiple projects?

我有多个项目并使用 Gradle 2.4 构建。

我想覆盖每个项目中的org.gradle.java.home参数,并尝试为每个项目添加gradle.properties文件并覆盖参数。

我已经设置主 gradle 项目 org.gradle.java.home=C:/Java/jdk1.6.0 并在子项目中覆盖为 org.gradle.java.home=C:/Java/jdk1.7.0_45

但它没有按预期工作,我得到

无效的源版本:1.7

错误信息。

有人可以告诉我如何解决这个问题吗?

根据我的测试:

我创建了 空白 根项目,但没有指定要使用哪个 java,并包含两个 子项目 [=16] =] 和 sourceCompatibilitytargetCompatibility 对于每个子项目并且它有效。

项目结构:

/build.gradle <-- root project (no sourceCompatibility or targetCompatibility here .. just blank)
/settings.gradle <-- include the subprojects
/gradle.properties <-- root gradle.properties (no org.gradle.java.home here)
  /sub1/build.gradle
  /sub1/gradle.properties
  /sub2/build.gradle
  /sub2/gradle.properties

根的settings.gradle:

include 'sub1'
include 'sub2'

子 1 的 gradle.properties:

org.gradle.java.home=/path/to/java8

子 1 的 build.gradle:

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

子2的gradle.properties:

org.gradle.java.home=/path/to/java7

子2的build.gradle:

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

所以,你可以试试这个设置。

我猜,因为您正在使用已经定义的根项目 java(不仅仅是作为配置点)- 这可能是问题所在。

同时检查这些:

How do I tell Gradle to use specific JDK version?

Gradle sourceCompatibility has no effect to subprojects