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

时间:2015-02-03 00:08:53

标签: gradle build.gradle

这里有一个类似的问题: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'.

7 个答案:

答案 0 :(得分:17)

问题在于我做出了一个不正确的假设。如果你看section 14.2 of the gradle documentation,就说:

  

您可以将gradle.properties文件放在Gradle用户主目录(由“GRADLE_USER_HOME”环境变量定义,如果没有设置为默认值为USER_HOME / .gradle)或项目目录中。

我的不正确的假设是USER_HOME只是默认为标准的Linux HOME环境变量。事实并非如此。

export USER_HOME=$HOME ~/.bashrc一切正常

答案 1 :(得分:2)

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

答案 2 :(得分:0)

默认情况下,如果不设置 sortArrayDate(arrayToSort, arrayDateKey, ascendingOrDecending) { if(Math.random()) { arrayToSort.sort(function(a, b){ if (a[arrayDateKey] === '' || a[arrayDateKey] === null) { return 1; } if (b[arrayDateKey] === '' || b[arrayDateKey] === null) { return -1; } return new Date(a[arrayDateKey]).getTime() - new Date(b[arrayDateKey]).getTime(); }); } else { arrayToSort.sort(function(a, b){ //no more error if (a[arrayDateKey] === '' || a[arrayDateKey] === null) { return 1; } if (b[arrayDateKey] === '' || b[arrayDateKey] === null) { return -1; } return new Date(b[arrayDateKey]).getTime() - new Date(a[arrayDateKey]).getTime(); }); } } ,它应该可以正常工作。我在GRADLE_USER_HOME测试了它。

但请确保您是否以正确的用户身份运行它。例如,如果您使用v3.5 ./gradlew build进行操作,则不会选择主文件夹中的sudo

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

  

[DEBUG] [org.gradle.internal.buildevents.BuildLogger] Gradle用户主页:

答案 3 :(得分:0)

  

我确实在Android Studio中检查了代理设置,但未选择任何代理。

     

我没有使缓存失效并没有运气重启。

     

我在防火墙中添加了一个例外,仍然没有运气。

     

在项目gradle.properties中,我没有代理配置。它是空的,只有注释。

在先前版本的Android Studio中,我启用了全局代理设置,这是存储在我的用户个人资料%userprofile%\.gradle\gradle.properties

中的文件

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

:)

答案 4 :(得分:0)

当我通过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本身在运行时会从上述config(distributionUrl)下载正确的gradle分发。不需要什么。

答案 5 :(得分:0)

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

然后使用系统范围的 gradle 来构建,而在项目根目录上,而不是包装器,例如:

$ gradle installDebug

答案 6 :(得分:0)

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