这里有一个类似的问题: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'.
答案 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、行尾还是两者的组合导致了这个问题,但我想我应该分享一下,以防其他人有同样的问题。