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

bcs8qyzn  于 2022-12-29  发布在  其他
关注(0)|答案(9)|浏览(238)

这里有一个类似的问题:Gradle properties not being read from ~/.gradle/gradle.properties但它并没有解决我的问题。
在我看来,Gradle没有读取我的~/.gradle/gradle.properties文件。
I have a gradle.properties file in ~/.gradle , and it has properties needed to sign artifacts before uploading to maven central. It looks like this:

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'.
uxhixvfz

uxhixvfz1#

问题是我做了一个不正确的假设,如果你看section 14.2 of the gradle documentation,它会说:
您可以将gradle.properties文件放置在Gradle用户主目录(由“GRADLE_USER_HOME”环境变量定义,如果未设置,则默认为USER_HOME/.gradle)或项目目录中。
我错误的假设是USER_HOME默认为标准的linux HOME环境变量,这是不正确的。
只要我在~/.bashrc中输入export USER_HOME=$HOME,一切都正常

k75qkfdt

k75qkfdt2#

默认情况下,没有设置GRADLE_USER_HOME,它应该工作,我在v3.5中测试了它。
但是要确保你是不是以正确的用户身份运行它。例如,如果你使用sudo执行你的./gradlew build,那么你的主文件夹中的gradle.properties将不会被拾取。
要确保默认的***gradle用户主页***,您可以使用--debug选项运行gradle并查看下面的行,
[调试] [组织.gradle.内部.构建事件.构建记录器] Gradle用户主页:

velaa5lx

velaa5lx3#

一个快速而简单的解决方案是将www.example.com放在gradle.properties您的build.gradle旁边,这样就可以保证它被读取。我知道这并不能解决公共属性的单一集中源,但至少它是一个东西。

ukxgm1gy

ukxgm1gy4#

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

9w11ddsr

9w11ddsr5#

我在Android Studio中检查了代理设置,但没有选择代理。
我做了无效缓存和重新启动没有运气。
我在防火墙中添加了一个例外,仍然没有运气。
在项目gradle.properties中,我没有代理配置。它是空的,只有注解。

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

删除这个文件中的代理行,解决了我的问题。我必须重新启动Android Studio才能使它工作。
:)

vpfxa7rd

vpfxa7rd6#

我自己在通过gradlew进行apk构建时也遇到了这个问题。我之前尝试过为上述错误设置Gradle_user_home,但没有用,下面的解决方案对我很有效。
我对www.example.com进行了以下配置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发行版。

tez616oj

tez616oj7#

我也遇到过同样的问题,并通过使用gradle binary来构建,而不是使用android project自带的wrapper来解决。您可以从这里安装gradle:https://docs.gradle.org/current/userguide/installation.html#installation
然后使用系统范围的gradle在项目根目录上进行构建,而不是使用 Package 器,例如:

$ gradle installDebug
3b6akqbq

3b6akqbq8#

我犯了一个不同的错误。为什么我在“intelligent idea”中设置了这个字段?:)但是,当我在这个字段中输入正确的值时,我gradle.properties从.gradle中正确阅读www.example.com
some setting in Idea

zbsbpyhn

zbsbpyhn9#

我注意到显示"project property file does not exists. We continue!"是因为脚本将在不同的路径中搜索gradle属性。
它将检查root/gradle.propertiesroot/app/gradle.properties中的内容,因此它将仅添加找到的内容中的内容,并显示另一个内容中的“错误”。
但是,在日志中,您实际上可以看到从读取文件添加的属性:

Adding project properties (if not overwritten by user properties): [android.nonTransitiveRClass, kotlin.code.style, org.gradle.jvmargs, android.useAndroidX]

相关问题