~/.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, чтобы все заработало.
:)