

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
<a name="maven-gradle"></a>

Nachdem Sie das CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen gespeichert haben, wie unter [Ein Authentifizierungstoken mithilfe einer Umgebungsvariablen übergeben](tokens-authentication.md#env-var) beschrieben, folgen Sie diesen Anweisungen, um Maven-Pakete aus einem Repository zu konsumieren und neue Pakete in einem Repository zu veröffentlichen. CodeArtifact

**Topics**
+ [Abhängigkeiten abrufen](#fetching-dependencies)
+ [Plugins abrufen](#fetching-plugins)
+ [Veröffentlichen Sie Artefakte](#publishing-artifacts)
+ [Führen Sie einen Gradle-Build in IntelliJ IDEA aus](#gradle-intellij)

## Abhängigkeiten abrufen
<a name="fetching-dependencies"></a>

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](tokens-authentication.md#env-var)

1. 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.

   Bei einem Repository, das {{my\_repo}} innerhalb einer Domain mit dem Namen benannt ist{{my\_domain}}, lautet der Befehl beispielsweise 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`

1. (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.

1. 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
<a name="fetching-plugins"></a>

Standardmäßig löst Gradle Plugins aus dem öffentlichen [Gradle](https://plugins.gradle.org/) 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](tokens-authentication.md#env-var)

1. Fügen Sie Ihrer `settings.gradle` Datei einen `pluginManagement` Block hinzu. Der `pluginManagement` Block muss vor allen anderen Anweisungen in erscheinen`settings.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.](https://docs.gradle.org/current/userguide/plugins.html#sec:custom_plugin_repositories)

## Veröffentlichen Sie Artefakte
<a name="publishing-artifacts"></a>

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-Datei auf der Grundlage von`groupId`, und`artifactId`, die im `publishing` Abschnitt `version` angegeben sind.

Wenn diese Änderungen abgeschlossen `build.gradle` sind, führen Sie den folgenden Befehl aus, um das Projekt zu erstellen und 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:
+  [Java-Bibliotheken erstellen](https://guides.gradle.org/building-java-libraries/) 
+  [Ein Projekt als Modul veröffentlichen](https://docs.gradle.org/current/userguide/publishing_setup.html) 

## Führen Sie einen Gradle-Build in IntelliJ IDEA aus
<a name="gradle-intellij"></a>

Sie können einen Gradle-Build in IntelliJ IDEA ausführen, 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 in`GRADLE_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"
                }   
       }   
   }
   ```

1. 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"
               }
           }
       }
   }
   ```

1. 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}}`
   ```

1. 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")
                }
       }
   }
   ```

1. 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")
               }
           }
       }
   }
   ```

1. 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}}`
   ```

1. 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
               }
           }
       }
   ```

1. 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
               }
           }
       }
   }
   ```

------