【问题标题】:How to make gradle.properties machine independent如何使 gradle.properties 机器独立
【发布时间】:2017-04-21 15:44:07
【问题描述】:

我正在使用 2 台不同的机器(家庭与工作)并通过 GitHub 传输代码,效果很好,但是当我将此代码添加到 gradle.properties 文件以修复令人烦恼的 google sheet 的 OAuth 问题:

org.gradle.java.home=C:\Program Files\Java\jdk1.8.0_131

org.gradle.java.home=C:\Program Files\Java\jdk1.8.0_77

现在我必须在两行之间切换以编译 Gradle。需要检查我是否仍然需要它(因为我已经整理好密钥库文件等),但我也想知道是否有一个简单的解决方案可以使这项工作(例如ifdef)。

显然,我猜想我可以在其中一台机器上更改目录名称,但仍然好奇如何在 Studio 中解决这个问题。

【问题讨论】:

    标签: android-studio gradle android-gradle-plugin build.gradle java-home


    【解决方案1】:

    让我们从the Gradle docs的引用开始:

    org.gradle.java.home

    为 Gradle 构建过程指定 Java 主目录。该值可以设置为 jdk 或 jre 位置,但是,根据您的构建,jdk 更安全。如果未指定设置,则使用合理的默认值。

    因此,默认情况下,您不应该需要这个项目属性(在 Gradle 中就是这样调用的)。

    但是,您可能需要指定 Java 目录。对于这个特定的项目属性,您可以遵循 Ray Tayeks 的建议并使用 JAVA_HOME 环境变量(在两个系统上)。但是还有另一种方法,可以用于任何项目属性(也可以用于所谓的系统属性):

    gradle.properties 文件可以位于文件系统的不同位置。您的文件位于项目目录中,因此它们包含在您的 VCS 中。您可以将它们/它用于与项目相关的属性。另一个位置在 Gradle 用户主目录中,默认情况下是您个人文件夹中的 .gradle 文件夹。此文件夹不受版本控制,因此只需在此处定义属性即可。

    【讨论】:

    • 是的,我不再需要它们(一旦我锁定了 SHA-1 和 debug.keystore),很抱歉造成混淆。我确实需要(当时),JAVA_HOME 和 java.home(如其他帖子所示)
    【解决方案2】:

    尝试从属性文件中删除该行。如果失败,请尝试在每台机器上设置 JAVA_HOME。

    有很多相关的questions

    您可以尝试在 gradle 上询问 forums

    【讨论】:

      猜你喜欢
      • 2013-04-24
      • 2013-04-20
      • 1970-01-01
      • 2014-06-05
      • 2022-11-04
      • 2016-05-01
      • 2010-09-23
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多