【问题标题】:How configure multiple gradle.properties files in Gradle for multiple projects?如何在 Gradle 中为多个项目配置多个 gradle.properties 文件?
【发布时间】:2015-06-01 10:31:15
【问题描述】:

我有多个项目并使用 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

错误信息。

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

【问题讨论】:

  • 你想为不同的项目运行不同版本的 gradle 吗?如果是这样,您应该使用 Gradle Wrapper
  • @MrWiggles 我正在尝试使用不同的 java 版本而不是不同版本的 gradle。
  • 你的意思是你有一个多模块构建并且你想要一个不同版本的java用于子模块?我相信你应该使用你需要的最高版本的JDK,并为每个模块设置sourceCompatibility和targetCompatibility
  • @MrWiggles 我不能覆盖 gradle.properties 文件中的“org.gradle.java.home”吗?我的要求是这样的。我可以知道这可能吗?
  • 据我所知,gradle 进程已经启动 - 你这样做是为了达到什么目的?

标签: java gradle build.gradle


【解决方案1】:

根据我的测试:

我创建了 blank 根项目,但没有指定要使用哪个 java,并包含两个 subprojects,每个子项目具有不同的 org.gradle.java.homesourceCompatibilitytargetCompatibility,并且它有效。

项目结构

/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

Root 的 settings.gradle

include 'sub1'
include 'sub2'

Sub1 的 gradle.properties

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

Sub1 的 build.gradle

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

Sub2 的 gradle.properties

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

Sub2 的 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

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 2012-08-22
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    相关资源
    最近更新 更多