Ich versuche, ein von Gradle erstelltes Artefakt für ein Maven-Repo bereitzustellen, und ich muss dafür Anmeldeinformationen angeben. Dies funktioniert vorerst gut:
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://.../nexus/content/repositories/snapshots/") {
authentication(userName: "admin", password: "admin123")
}
}
}
}
Aber ich mag es nicht, die Anmeldeinformationen in der Quellcodeverwaltung speichern zu müssen. Mit Maven würde ich eine Serverkonfiguration definieren und Anmeldeinformationen in meinem zuweisen ~/.m2/settings.xml
. Wie mache ich etwas Ähnliches mit Gradle?
Antworten:
~ / .gradle / gradle.properties :
build.gradle :
quelle
gradle.properties
nicht eingecheckt werdenVCS
?Die erste Antwort ist noch gültig, aber die API hat sich in der Vergangenheit geändert. Da meine Bearbeitung dort nicht akzeptiert wurde, poste ich sie als separate Antwort.
Die Methode
authentication()
wird nur verwendet, um die Authentifizierungsmethode (z. B. Basic) bereitzustellen, jedoch keine Anmeldeinformationen.Sie sollten es auch nicht verwenden, da es die Anmeldeinformationen bei einem Fehler einfach druckt!
So sollte es in deinem aussehen
build.gradle
In
gradle.properties
Ihrem Userhome-Verzeichnis setzen Sie:Achten Sie auch darauf , dass die
GRADLE_USER_HOME
eingestellt ist~/.gradle
sonst die Eigenschaften dort Datei wird nicht aufgelöst werden.Siehe auch:
https://docs.gradle.org/current/userguide/build_environment.html
und
https://docs.gradle.org/current/userguide/dependency_management.html (23.6.4.1)
quelle
maven-publish
Plugin, während die Frage dasmaven
Plugin verwendet.Sie können auch Variablen in der Befehlszeile mit angeben
-PmavenUser=user -PmavenPassword=password
.Dies kann nützlich sein, wenn Sie aus irgendeinem Grund keine gradle.properties-Datei verwenden können. Zum Beispiel verwenden wir auf einem Build-Server Gradle mit der
-g
Option, dass jeder Build-Plan seinen eigenen hatGRADLE_HOME
.quelle
Wenn Sie benutzerspezifische Anmeldeinformationen haben (dh jeder Entwickler hat möglicherweise einen anderen Benutzernamen / ein anderes Passwort), würde ich die Verwendung des Gradle-Properties-Plugins empfehlen .
gradle.properties
gradle-local.properties
(dies sollte ignoriert werden).Dies ist besser als das Überschreiben der Verwendung,
$USER_HOME/.gradle/gradle.properties
da verschiedene Projekte möglicherweise dieselben Eigenschaftsnamen haben.quelle
build.gradle
. Wie verwende ich Anmeldeinformationen in deruploadArchives
Konfiguration?Sie können die Anmeldeinformationen in eine Eigenschaftendatei einfügen und sie folgendermaßen lesen:
Ein anderer Ansatz besteht darin, Umgebungsvariablen auf Betriebssystemebene zu definieren und sie zu lesen, indem Sie:
quelle
Für diejenigen unter Ihnen, die auf einem MacOS aufbauen und Ihr Kennwort nicht gerne im Klartext auf Ihrem Computer belassen, können Sie die Anmeldeinformationen mithilfe des Schlüsselbund-Tools speichern und dann in den Build einfügen. Credits gehen an Viktor Eriksson. https://pilloxa.gitlab.io/posts/safer-passwords-in-gradle/
quelle