Dies ist eine Zusammenfassung zum Erstellen und Verwenden eines internen Maven-Repositorys in Google Cloud Storage (GCS). Es fühlt sich wie ein zweites Gebräu dessen an, was in dem Dokument geschrieben steht, aber ich konnte keinen Artikel finden, der umfassend zusammenfasst, wie man ein internes Repository erstellt, wie man die JAR-Datei nach dem Erstellen überträgt und wie man sie verwendet, also als Memorandum Ich werde es verlassen.
Übrigens, da ich ein Gradle-Benutzer bin, werde ich die Methode bei der Verwendung von Gradle zusammenfassen.
** Personen, die GCP bereits für Entwicklung / Betrieb verwenden ** Sie müssen lediglich einen GCS-Bucket erstellen und Berechtigungen festlegen, damit die Installation einfach ist!
** Diejenigen, die es satt haben, Gradle-Teilprojekte mit Git-Submodulen zu konfigurieren ** Es ist einfach, weil Sie es so verwenden können, als würden Sie eine JAR-Datei aus Maven Central ziehen!
** Personen, die bereits interne Repositorys wie Sonatype Nexus eingerichtet haben, aber die Wartung / Instandhaltung satt haben ** GCS ist ein verwalteter Dienst, also wird Google sich darum kümmern!
Die offizielle Dokumentation stammt von hier. Laut Release Notes scheint es sich übrigens um eine Funktion zu handeln, die in Version 4.2 hinzugefügt wurde. .. Es gibt es schon eine ganze Weile, ich wusste nicht ... : Schweißtropfen:
Geben Sie einfach einen Befehl ein, um einen Bucket zu erstellen.
$ export BUCKET_NAME='your-inhouse-repository'
$ gsutil mb -c standard -l asia-northeast1 gs://${BUCKET_NAME}
Dies ist alles, was Sie brauchen, um es selbst zu tun. Wenn Sie mit mehreren Personen entwickeln, geben Sie dem Entwickler Zugriff auf den Bucket.
Unten lautet der Bucket-Name "your-inhouse-repository", schneiden Sie den Pfad "maven" für Maven darunter ab und gehen Sie davon aus, dass Gradle sich auf "gcs: // your-inhouse-repository / maven" bezieht. Fortfahren.
Da es sich um ein internes Repository handelt, wird es nicht nach außen weitergegeben. Wir werden uns authentifizieren, damit nur autorisierte Konten für den Bucket darauf zugreifen können. In der Dokumentation heißt es jedoch:
When using a Google Cloud Storage backed repository default application credentials will be used with no further configuration required
Was sind die "Standardanmeldeinformationen der Anwendung"? Es scheint, dass es ein solches Konzept gibt. Es heißt in GCP ADC.
Wenn Sie lokal arbeiten, können Sie "gcloud init" und "gcloud auth application-default login" ausführen. Dann werden der ADC und dergleichen an der richtigen Stelle platziert und Gradle verwendet ihn zur Authentifizierung.
$ gcloud init
$ gcloud auth application-default login
Dies ist ein Beispielcode auf der Bibliotheksseite. Sie können JAR-Dateien mit dem Maven Publish Plugin (https://docs.gradle.org/current/userguide/publishing_maven.html) hochladen.
build.gradle
plugins {
id 'java-library'
id 'maven-publish'
}
group = 'your.libs'
version = '1.0.0'
publishing {
publications {
maven(MavenPublication) {
from components.java
}
}
repositories {
//Geben Sie das interne Repository als Upload-Ziel an.
maven {
url 'gcs://your-inhouse-repository/maven'
}
}
}
settings.gradle
rootProject.name = 'example-library'
$ gradle publish
Dies ist der Beispielcode auf der Seite, die die Bibliothek verwendet. Fügen Sie einfach das referenzierte interne Repository zu "Repositorys" hinzu und definieren Sie die Abhängigkeiten in "Abhängigkeiten".
build.gradle
repositories {
//Fügen Sie das interne Repository als Referenz hinzu.
maven {
url 'gcs://your-inhouse-repository/maven'
}
}
dependencies {
//Alles was Sie tun müssen, ist das Glas als Abhängigkeit hinzuzufügen und Gradle wird es für Sie finden.
implementation 'your.libs:example-library:1.0.0'
}
Ich habe mehrere GCP-Konten für den persönlichen und geschäftlichen Gebrauch, aber selbst wenn ich die Anmeldeinformationen durch "gcloud init" und "gcloud auth application-default login" wechsle, werden die Informationen vor Gradle gewechselt Ich bin auf das Problem gestoßen, mich auf ... Ich kannte die Ursache nicht und verschwendete ungefähr einen Tag. : Schweißtropfen:
** Es ist einfach, sobald Sie es wissen, aber die Ursache war, dass der Gradle-Daemon ausgeführt wurde und die alten Anmeldeinformationen enthielt. ** ** **
Sobald Sie den Dämon stoppen, werden Ihre Anmeldeinformationen nach dem Wechsel verwendet.
$ gradle --stop
Wenn Sie ihnen ausdrücklich mitteilen, dass sie den Dämon nicht verwenden sollen, werden Ihre aktuellen Anmeldeinformationen nachgeschlagen.
$ gradle publish --no-daemon
Ab dem 25. Juli 2020 ist eine Beta-Version eines Dienstes namens Artifact Registry verfügbar, der sich auf die Verwaltung von Build-Artefakten spezialisiert hat. Es scheint, dass es auch als [Maven-Repository] verwendet werden kann (https://cloud.google.com/artifact-registry/docs/java/quickstart?hl=ja), aber dies ist immer noch wie die Alpha-Version, daher freue ich mich von nun an darauf. ..
Recommended Posts