CodeArtifact Mit Gradle verwenden - CodeArtifact

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CodeArtifact Mit Gradle verwenden

Nachdem Sie das CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen gespeichert haben, wie unter Ein Authentifizierungstoken mithilfe einer Umgebungsvariablen übergeben beschrieben, folgen Sie diesen Anweisungen, um Maven-Pakete aus einem Repository zu konsumieren und neue Pakete in einem Repository zu veröffentlichen. CodeArtifact

Abhängigkeiten abrufen

Verwenden Sie das folgende Verfahren, um Abhängigkeiten aus CodeArtifact einem Gradle-Build abzurufen.

Um Abhängigkeiten aus CodeArtifact einem Gradle-Build abzurufen
  1. Wenn nicht, erstellen und speichern Sie ein CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen, indem Sie das Verfahren unter befolgen. Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen

  2. Fügen Sie dem maven Abschnitt in der build.gradle Projektdatei einen repositories Abschnitt hinzu.

    maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } }

    Das url Beispiel oben ist der Endpunkt Ihres CodeArtifact Repositorys. Gradle verwendet den Endpunkt, um eine Verbindung zu Ihrem Repository herzustellen. Im Beispiel my_domain ist dies der Name Ihrer Domain, 111122223333 die ID des Eigentümers der Domain und my_repo der Name Ihres Repositorys. Sie können den Endpunkt eines Repositorys mit dem get-repository-endpoint AWS CLI Befehl abrufen.

    Zum Beispiel mit einem Repository namens my_repo innerhalb einer Domain mit dem Namen my_domain, der Befehl lautet wie folgt:

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven

    Der get-repository-endpoint Befehl gibt den Repository-Endpunkt zurück:

    url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/'

    Das credentials Objekt im vorherigen Beispiel enthält das CodeArtifact Authentifizierungstoken, das Sie in Schritt 1 erstellt haben und das Gradle zur Authentifizierung verwendet. CodeArtifact

    Anmerkung

    Um einen Dual-Stack-Endpunkt zu verwenden, verwenden Sie den Endpunkt. codeartifact.region.on.aws

  3. (Optional) — Um das CodeArtifact Repository als einzige Quelle für Ihre Projektabhängigkeiten zu verwenden, entfernen Sie alle anderen Abschnitte in repositories von. build.gradle Wenn Sie mehr als ein Repository haben, durchsucht Gradle jedes Repository nach Abhängigkeiten in der Reihenfolge, in der sie aufgelistet sind.

  4. Nachdem Sie das Repository konfiguriert haben, können Sie dem dependencies Abschnitt Projektabhängigkeiten mit der Standard-Gradle-Syntax hinzufügen.

    dependencies { implementation 'com.google.guava:guava:27.1-jre' implementation 'commons-cli:commons-cli:1.4' testImplementation 'org.testng:testng:6.14.3' }

Plugins abrufen

Standardmäßig löst Gradle Plugins aus dem öffentlichen Gradle Plugin Portal auf. Gehen Sie wie folgt vor, um Plugins aus einem CodeArtifact Repository abzurufen.

Um Plugins aus einem CodeArtifact Repository abzurufen
  1. Falls nicht, erstellen und speichern Sie ein CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen, indem Sie das Verfahren unter befolgen. Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen

  2. Fügen Sie Ihrer settings.gradle Datei einen pluginManagement Block hinzu. Der pluginManagement Block muss vor allen anderen Anweisungen in erscheinensettings.gradle, siehe den folgenden Ausschnitt:

    pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password System.env.CODEARTIFACT_AUTH_TOKEN } } } }

Dadurch wird sichergestellt, dass Gradle Plugins aus dem angegebenen Repository auflöst. Das Repository muss über ein Upstream-Repository mit einer externen Verbindung zum Gradle-Plugin-Portal (z. B.gradle-plugins-store) verfügen, damit die häufig benötigten Gradle-Plugins für den Build verfügbar sind. Weitere Informationen finden Sie in der Gradle-Dokumentation.

Veröffentlichen Sie Artefakte

In diesem Abschnitt wird beschrieben, wie Sie eine mit Gradle erstellte Java-Bibliothek in einem CodeArtifact Repository veröffentlichen.

Fügen Sie zunächst das maven-publish Plugin zum plugins Abschnitt der build.gradle Projektdatei hinzu.

plugins { id 'java-library' id 'maven-publish' }

Als Nächstes fügen Sie der build.gradle Projektdatei einen publishing Abschnitt hinzu.

publishing { publications { mavenJava(MavenPublication) { groupId = 'group-id' artifactId = 'artifact-id' version = 'version' from components.java } } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } } } }

Das maven-publish Plugin generiert eine POM DateigroupId, die auf dem, und basiertartifactId, das im publishing Abschnitt version angegeben ist.

Wenn diese Änderungen abgeschlossen build.gradle sind, führen Sie den folgenden Befehl aus, um das Projekt zu erstellen und es in das Repository hochzuladen.

./gradlew publish

Verwenden Sie diese Option, list-package-versions um zu überprüfen, ob das Paket erfolgreich veröffentlicht wurde.

aws codeartifact list-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven\ --namespace com.company.framework --package my-package-name

Beispielausgabe:

{ "format": "maven", "namespace": "com.company.framework", "package": "example", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }

Weitere Informationen finden Sie in den folgenden Themen auf der Gradle-Website:

Führen Sie einen Gradle-Build in IntelliJ aus IDEA

Sie können einen Gradle-Build in IntelliJ ausführenIDEA, der Abhängigkeiten abruft. CodeArtifact Um sich zu authentifizieren CodeArtifact, müssen Sie Gradle ein Autorisierungstoken zur Verfügung stellen. CodeArtifact Es gibt drei Methoden, um ein Authentifizierungstoken bereitzustellen.

  • Methode 1: Speichern des Authentifizierungstokens in. gradle.properties Verwenden Sie diese Methode, wenn Sie den Inhalt der Datei überschreiben oder ihn erweitern können. gradle.properties

  • Methode 2: Speichern des Authentifizierungstokens in einer separaten Datei. Verwenden Sie diese Methode, wenn Sie Ihre gradle.properties Datei nicht ändern möchten.

  • Methode 3: Generieren eines neuen Authentifizierungstokens für jeden Lauf, indem es aws als Inline-Skript in build.gradle ausgeführt wird. Verwenden Sie diese Methode, wenn Sie möchten, dass das Gradle-Skript bei jedem Lauf ein neues Token abruft. Das Token wird nicht im Dateisystem gespeichert.

Token stored in gradle.properties
Methode 1: Speichern des Authentifizierungstokens in gradle.properties
Anmerkung

Das Beispiel zeigt die gradle.properties Datei inGRADLE_USER_HOME.

  1. Aktualisieren Sie Ihre build.gradle Datei mit dem folgenden Codeausschnitt:

    repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password "$codeartifactToken" } } }
  2. Um Plugins abzurufen CodeArtifact, füge deiner Datei einen pluginManagement Block hinzu. settings.gradle Der pluginManagement Block muss vor allen anderen Anweisungen in settings.gradle erscheinen.

    pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password "$codeartifactToken" } } } }
  3. Rufen Sie ein CodeArtifact Authentifizierungstoken ab:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. Schreiben Sie das Authentifizierungstoken in die Datei: gradle.properties

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties
Token stored in separate file
Methode 2: Speichern des Authentifizierungstokens in einer separaten Datei
  1. Aktualisieren Sie Ihre build.gradle Datei mit dem folgenden Snippet:

    def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password props.getProperty("codeartifactToken") } } }
  2. Um Plugins abzurufen CodeArtifact, füge deiner Datei einen pluginManagement Block hinzu. settings.gradle Der pluginManagement Block muss vor allen anderen Anweisungen in settings.gradle erscheinen.

    pluginManagement { def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password props.getProperty("codeartifactToken") } } } }
  3. Rufen Sie ein CodeArtifact Authentifizierungstoken ab:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. Schreiben Sie das Authentifizierungstoken in die Datei, die in Ihrer Datei angegeben wurde: build.gradle

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > file
Token generated for each run in build.gradle
Methode 3: Generieren eines neuen Authentifizierungstokens für jeden Lauf durch Ausführung aws als Inline-Skript in build.gradle
  1. Aktualisieren Sie Ihre build.gradle Datei mit dem folgenden Snippet:

    def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password codeartifactToken } } }
  2. Um Plugins abzurufen CodeArtifact, füge deiner Datei einen pluginManagement Block hinzu. settings.gradle Der pluginManagement Block muss vor allen anderen Anweisungen in settings.gradle erscheinen.

    pluginManagement { def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password codeartifactToken } } } }