Próbuję wdrożyć artefakt zbudowany przez Gradle do repozytorium Maven i muszę określić poświadczenia do tego. Na razie działa to dobrze:
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://.../nexus/content/repositories/snapshots/") {
authentication(userName: "admin", password: "admin123")
}
}
}
}
Ale nie lubię przechowywać poświadczeń w kontroli źródła. W Maven zdefiniowałbym konfigurację serwera i przypisałbym poświadczenia w moim ~/.m2/settings.xml
. Jak zrobić coś podobnego w Gradle?
Odpowiedzi:
~ / .gradle / gradle.properties :
build.gradle :
źródło
gradle.properties
nie być sprawdzana w celuVCS
?Pierwsza odpowiedź jest nadal aktualna, ale interfejs API zmienił się w przeszłości. Ponieważ moja zmiana nie została zaakceptowana, zamieszczam ją jako oddzielną odpowiedź.
Metoda
authentication()
służy tylko do podania metody uwierzytelniania (np. Basic), ale nie do podania żadnych poświadczeń.Nie powinieneś go również używać, ponieważ wyświetla dane uwierzytelniające w przypadku awarii!
Tak to powinno wyglądać w Twoim
build.gradle
W
gradle.properties
swoim katalogu userhome umieść:Zapewniają również, że
GRADLE_USER_HOME
jest ustawiony~/.gradle
inaczej plik właściwości nie zostanie rozwiązany.Zobacz też:
https://docs.gradle.org/current/userguide/build_environment.html
i
https://docs.gradle.org/current/userguide/dependency_management.html (23.6.4.1)
źródło
maven-publish
wtyczki, podczas gdy pytanie używamaven
wtyczki.Możesz również podać zmienne w wierszu poleceń za pomocą
-PmavenUser=user -PmavenPassword=password
.Może to być przydatne, ponieważ z jakiegoś powodu nie możesz użyć pliku gradle.properties. Na przykład na serwerze kompilacji używamy Gradle z
-g
opcją, aby każdy plan budowy miał swój własnyGRADLE_HOME
.źródło
Jeśli masz poświadczenia specyficzne dla użytkownika (tj. Każdy programista może mieć inną nazwę użytkownika / hasło), polecam użycie wtyczki gradle-properties-plugin .
gradle.properties
gradle-local.properties
(to powinno być ignorowane przez git).Jest to lepsze niż zastępowanie używania,
$USER_HOME/.gradle/gradle.properties
ponieważ różne projekty mogą mieć takie same nazwy właściwości.źródło
build.gradle
. Jak używać poświadczeń wuploadArchives
konfiguracji?Możesz umieścić poświadczenia w pliku właściwości i odczytać je, używając czegoś takiego:
Innym podejściem jest zdefiniowanie zmiennych środowiskowych na poziomie systemu operacyjnego i odczytanie ich przy użyciu:
źródło
Dla tych z Was, którzy budują w systemie MacOS i nie lubią zostawiać hasła w postaci zwykłego tekstu na komputerze, mogą użyć narzędzia pęku kluczy do przechowywania poświadczeń, a następnie wstrzyknąć je do kompilacji. Kredyty trafiają do Viktora Erikssona. https://pilloxa.gitlab.io/posts/safer-passwords-in-gradle/
źródło