【问题标题】:Why set environment variable for GRADLE (Android Studio)?为什么要为 GRADLE (Android Studio) 设置环境变量?
【发布时间】:2017-09-18 09:10:36
【问题描述】:

我最近一直在使用 Android Studio,并且能够开发应用程序。我通过 build.gradle 为外部库添加依赖项。一切似乎都很好。最近我只是在尝试阅读有关 gradle 的信息,我注意到我需要将“GRADLE_HOME%\bin”设置为路径下的系统变量。

我认为我没有为 gradle 设置任何环境变量。 老实说,我没有适当的指导,而且我对 gradle 缺乏很多知识。 如果有人能解释其目的,我将不胜感激。

edit-我设置了 JAVA_HOME,我的问题与此无关。我找不到任何关于设置 GRADLE_HOME 的信息,但它似乎并没有影响我在 android studio 中的工作(涉及 gradle)。因此我想知道 GRADLE_HOME 在什么方面有用。

【问题讨论】:

  • 那一个是关于 JAVA_HOME 但所有 _HOME 变量都有相同的目的
  • @TimCastelijns 我理解让 JAVA_HOME 系统变量指向已安装 jdk 的位置的目的。 If Iam not wrong 可以帮助我运行 java 代码,即使代码没有放在特定的路径中。但我的问题是关于 GRADLE_HOME,我似乎没有为 GRADLE_HOME 设置系统变量,但它并没有阻止我添加依赖项或编译,或任何类似的东西。这让我有点困惑。
  • 那么它可能是在安装android studio时自动设置的。但是你需要它的原因和java_home一样

标签: android gradle


【解决方案1】:

让我通过它的代码来解释。通常在gradle下有一个名为wrapper的目录。如果你用JD-GUI阅读gradle-wrapper.jar,可以找到GradleUserHomeLookup.class

public class GradleUserHomeLookup{

  public static final String DEFAULT_GRADLE_USER_HOME = System.getProperty("user.home") + "/.gradle";
  public static final String GRADLE_USER_HOME_PROPERTY_KEY = "gradle.user.home";
  public static final String GRADLE_USER_HOME_ENV_KEY = "GRADLE_USER_HOME";

  public static File gradleUserHome(){
    String gradleUserHome;

    if ((gradleUserHome = System.getProperty("gradle.user.home")) != null) {
      return new File(gradleUserHome);
    }

    if ((gradleUserHome = System.getenv("GRADLE_USER_HOME")) != null) {
      return new File(gradleUserHome);
    }
    return new File(DEFAULT_GRADLE_USER_HOME);
  }
}
  • 如果gradle.user.home存在,则返回。
  • 如果没有gradle.user.home但你设置了GRADLE_USER_HOME,则返回GRADLE_USER_HOME
  • 如果gradle.user.homeGRADLE_USER_HOME 都不存在,将返回DEFAULT_GRADLE_USER_HOME (Users/your-name/.gradle)。

这是一个例子。在gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

注意配置gradle's version = 3.3 的最后一行。在 Android-Studio 中,gradle 命令来自wrapper/dists/your-version/xxxx/gradle-3.3/bin/。如果没有version,它将下载gradle并安装在wrapper/dists/...。更多详情请见Install.class

编辑

您可以找到更多信息here

【讨论】:

  • 这变得更加令人困惑,因为问题是关于 GRADLE_HOME 但这是关于 GRADLE_USER_HOME,它们是否相同?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
相关资源
最近更新 更多