~/.gradle/gradle.properties 文件未被读取

~/.gradle/gradle.properties file not being read

这里有一个类似的问题:Gradle properties not being read from ~/.gradle/gradle.properties 但它没有解决我的问题。

在我看来 gradle 没有读取我的 ~/.gradle/gradle.properties 文件。

我在 ~/.gradle 中有一个 gradle.properties 文件,它具有在上传到 Maven Central 之前签署工件所需的属性。它看起来像这样:

signing.keyId=12345678
signing.password=myPassword
signing.secretKeyRingFile=/home/me/.gnupg/secring.gpg

sonatypeUsername=me
sonatypePassword=myOtherPassword

当我尝试构建我的项目时,它抱怨没有 sonatypeUsername 属性,因此:

> Could not find property 'sonatypeUsername' on root project 'yourProject'.

这是我的项目 build.gradle 的相关部分:

uploadArchives {
    repositories {
        mavenDeployer {

            // lots of non-interesting things here

            repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
                authentication(userName: project.property("sonatypeUsername"), password: project.property("sonatypePassword"))
            }
        }
    }
}

当我尝试通过调试构建项目时,这是我看到的有关属性的信息:

$ ./gradlew --stacktrace --debug build

[INFO] [o.g.BuildLogger] Starting Build
[DEBUG] [o.g.BuildLogger] Gradle user home: /home/me
[DEBUG] [o.g.BuildLogger] Current dir: /home/me/dev/yourProject
[DEBUG] [o.g.BuildLogger] Settings file: null
[DEBUG] [o.g.BuildLogger] Build file: null
[DEBUG] [o.g.i.b.BuildSourceBuilder] Starting to build the build sources.
[DEBUG] [o.g.i.b.BuildSourceBuilder] Gradle source dir does not exist. We leave.
[DEBUG] [o.g.i.DefaultGradlePropertiesLoader] Found env project properties: []
[DEBUG] [o.g.i.DefaultGradlePropertiesLoader] Found system project properties: []
[DEBUG] [o.g.a.i.a.m.DefaultLocalMavenRepositoryLocator] No local repository in Settings file defined. Using default path: /home/me/.m2/repository
[DEBUG] [o.g.i.ScriptEvaluatingSettingsProcessor] Timing: Processing settings took: 0.286 secs
[INFO] [o.g.BuildLogger] Settings evaluated using empty settings script.
[DEBUG] [o.g.i.ProjectPropertySettingBuildLoader] Looking for project properties from: /home/me/dev/yourProject/gradle.properties
[DEBUG] [o.g.i.ProjectPropertySettingBuildLoader] project property file does not exists. We continue!
[INFO] [o.g.BuildLogger] Projects loaded. Root project using build file '/home/me/dev/yourProject/build.gradle'.

一个快速而肮脏的解决方案就是简单地将 gradle.properties 放在您的 build.gradle 旁边,这将保证它会被读取。我意识到这并不能解决公共属性的单一集中来源问题,但至少可以解决问题。

问题是我做了一个不正确的假设。如果您查看 section 14.2 of the gradle documentation,它会显示:

You can place a gradle.properties file in the Gradle user home directory (defined by the “GRADLE_USER_HOME” environment variable, which if not set defaults to USER_HOME/.gradle) or in your project directory.

我的不正确 假设是 USER_HOME 只是默认为标准 linux HOME 环境变量。这不是真的。

一旦我 export USER_HOME=$HOME 在我的 ~/.bashrc 中一切正常

默认情况下,无需设置 GRADLE_USER_HOME,它应该可以工作。我在 v3.5 测试过它。

但请确保您运行是否以正确的用户身份使用它。例如,如果您使用 sudo 执行 ./gradlew build,那么您主文件夹中的 gradle.properties 将不会被提取。

要确保默认gradle用户主页,您可以运行gradle使用 --debug 选项并注意以下行,

[DEBUG] [org.gradle.internal.buildevents.BuildLogger] Gradle user home:

I did check Proxy Settings in Android Studio and i had No Proxy selected.

I did Invalidate Cache and Restart with no luck.

I added an exception in Firewall, still no luck.

In project gradle.properties i have no proxy configurations. Its empty, only comments.

在以前的 Android Studio 版本中,我启用了全局代理设置,它是一个存储在我的用户配置文件中的文件 %userprofile%\.gradle\gradle.properties

删除此文件中的代理行,解决了我的问题。我必须重新启动 Android Studio 才能使其正常工作。

:)

我自己在通过 gradlew 努力构建 apk 时偶然发现了这个问题。 我之前尝试针对所提到的错误设置 Gradle_user_home,但没有用,下面的解决方案对我有用。

我对 gradle-wrapper.properties 进行了以下配置:

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

gradlew 本身在 运行 时间从上面的配置 (distributionUrl) 下载 gradle 的正确分发。没有其他要求。

我遇到了同样的问题并通过使用 gradle 二进制文件来构建而不是 android 项目附带的包装器来解决它。您可以从这里安装 gradle:https://docs.gradle.org/current/userguide/installation.html#installation

然后在系统范围内使用 gradle 进行构建,同时在项目根目录而不是包装器上,例如 ex:

$ gradle installDebug

我正在使用 Windows,我遇到了同样的问题。我注意到我的 ~/.gradle/gradle.properties 文件在开头有一个字节顺序标记 (BOM),我认为它有 windows 行结尾 (\r\n)。我重新创建了我的 ~/.gradle/gradle.properties 文件,方法是删除它,然后用 vim 和 unix 行结尾 (\n) 制作一个新文件,内容与以前相同,然后它开始工作。我不知道是 BOM、行尾还是两者的组合导致了这个问题,但我认为我应该分享这个以防其他人对这个问题有同样的原因。

我犯了一个不同的错误。为什么我要在“智能创意”中设置这个字段? :) 但是,当我在此字段中写入正确的值时,我从 .gradle
得到正确的读数 gradle.properties some setting in Idea