[JAVA] Erstellen Sie ein internes Maven-Repository in Google Cloud Storage

Einführung

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.

Jemand, der es vielleicht versuchen möchte

Wie man baut und wie man es benutzt

Gradle-Dokumentation

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:

Erstellen eines internen Repositorys

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.

Authentifizierungsmethode

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

JAR-Datei hochladen

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

Verwendung von JAR-Dateien

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'
}

Tipps, wenn die Authentifizierungsinformationen nicht wechseln

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

Beiseite

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

Erstellen Sie ein internes Maven-Repository in Google Cloud Storage
Erstellen Sie ein Maven-Repository in AWS S3
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9
Ein Memorandum Note, wenn Apache Maven auf einem internen Proxy ausgeführt wird
Erstellen Sie eine Datenverarbeitungsumgebung mit Google Cloud DataFlow + Pub / Sub
Erstellen Sie einen Minecraft-Server auf AWS
Erstellen Sie eine XAMPP-Umgebung unter Ubuntu
So erstellen Sie ein Maven-Repository für 2020
Erstellen Sie eine Java-Entwicklungsumgebung auf dem Mac
Erstellen Sie eine Java 8-Entwicklungsumgebung mit AWS Cloud 9
Erstellen Sie eine JMeter-Umgebung auf Ihrem Mac
[Android] [Java] Laden Sie Bilder auf GCS (Google Cloud Storage) mit Stream mit Glide herunter
Erstellen eines Testflusses auf CircleCI mit Jib
Erstellen Sie eine Laravel-Umgebung auf einer AWS-Instanz
Ich habe versucht, ein Remote-Repository für Maven einzurichten
Erstellen Sie eine Java-Ausführungsumgebung auf Sakura VPS
So erstellen Sie eine Pytorch-Umgebung unter Ubuntu