~/.gradle/gradle Файл .properties не читается

Здесь есть аналогичный вопрос: Gradle свойства, которые не читаются из ~/.gradle/gradle.properties, но это не решает мою проблему.

Мне кажется, что gradle НЕ читает мой файл ~/.gradle/gradle.properties.

У меня есть файл gradle.properties в ~/.gradle, и у него есть свойства, необходимые для подписи артефактов перед загрузкой в ​​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'.

Ответ 1

Проблема заключалась в том, что я сделал предположение, что это не так. Если вы посмотрите раздел раздела 14.2 документации gradle, в нем говорится:

Вы можете поместить файл gradle.properties в домашний каталог пользователя gradle (определяемый переменной окружения "GRADLE_USER_HOME", который, если он не задан по умолчанию для USER_HOME/.gradle) или в каталоге вашего проекта.

Мое неправильное предположение заключалось в том, что USER_HOME просто по умолчанию не соответствует стандартной переменной среды linux HOME. Это неверно.

Как только я export USER_HOME=$HOME в моем ~/.bashrc все работает

Ответ 2

Быстрое и грязное решение просто просто поместите gradle.properties прямо рядом с вашим build.gradle, что гарантирует, что он будет считан. Я понимаю, что это не решает ни одного централизованного источника общих свойств, но, по крайней мере, это что-то.

Ответ 3

По умолчанию, без установки GRADLE_USER_HOME, это должно работать. Я проверял это в v3.5.

Но убедитесь, что вы используете его как правильный пользователь. Например, если вы выполняете ./gradlew build с помощью sudo, то gradle.properties в вашей домашней папке не будет gradle.properties.

Чтобы удостовериться, что пользователь по умолчанию использует gradle, вы можете запустить gradle с --debug и посмотреть на строку ниже,

[DEBUG] [org.gradle.internal.buildevents.BuildLogger] Дом пользователя Gradle:

Ответ 4

Я проверил настройки прокси в Android Studio и не выбрал ни одного прокси.

Я сделал Invalidate Cache and Restart без удачи.

Я добавил исключение в Firewall, все еще не повезло.

В проекте gradle.properties меня нет настроек прокси. Его пусто, только комментарии.

В предыдущей версии Android Studio я включал Глобальную настройку прокси-сервера, и это был файл, хранящийся в моем профиле пользователя %userprofile%\.gradle\gradle.properties

Удаление прокси-строк в этом файле решило мою проблему. Мне пришлось перезапустить Android Studio, чтобы все заработало.

:)