

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 MVN verwenden
<a name="maven-mvn"></a>

Sie verwenden den `mvn` Befehl, um Maven-Builds auszuführen. In diesem Abschnitt wird gezeigt, wie Sie die Verwendung eines CodeArtifact Repositorys konfigurieren`mvn`.

**Topics**
+ [Abhängigkeiten abrufen](#fetching-dependencies)
+ [Artefakte veröffentlichen](#publishing-artifacts)
+ [Veröffentlichen Sie Artefakte von Drittanbietern](#publishing-third-party-artifacts)
+ [Beschränken Sie das Herunterladen von Maven-Abhängigkeiten auf ein Repository CodeArtifact](#restrict-maven-downloads)
+ [Informationen zum Apache Maven-Projekt](#apache-maven-project-info)

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

Um das Abrufen von Abhängigkeiten aus einem CodeArtifact Repository `mvn` zu konfigurieren, müssen Sie die Maven-Konfigurationsdatei und optional das POM Ihres Projekts bearbeiten. `settings.xml`

1. Falls nicht, erstellen und speichern Sie ein CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen, wie unter [Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen](tokens-authentication.md#env-var) So richten Sie die Authentifizierung für Ihr Repository ein. CodeArtifact 

1. Fügen Sie unter `settings.xml` (normalerweise zu finden unter`~/.m2/settings.xml`) einen `<servers>` Abschnitt mit einem Verweis auf die `CODEARTIFACT_AUTH_TOKEN` Umgebungsvariable hinzu, sodass Maven das Token in HTTP-Anfragen weitergibt.

   ```
   <settings>
   ...
       <servers>
           <server>
               <id>codeartifact</id>
               <username>aws</username>
               <password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
           </server>
       </servers>
   ...
   </settings>
   ```

1. Fügen Sie den URL-Endpunkt für Ihr CodeArtifact Repository in einem `<repository>` Element hinzu. Sie können dies in der POM-Datei `settings.xml` oder in der POM-Datei Ihres Projekts tun.

   Sie können den Endpunkt Ihres 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 --repository my_repo --format maven
   ```

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

   ```
   url 'https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/'
   ```
**Anmerkung**  
Um einen Dual-Stack-Endpunkt zu verwenden, verwenden Sie den `codeartifact.{{region}}.on.aws` Endpunkt.

   Fügen Sie den Repository-Endpunkt `settings.xml` wie folgt hinzu.

   ```
   <settings>
   ...
       <profiles>
           <profile>
               <id>default</id>
               <repositories>
                   <repository>
                       <id>codeartifact</id>
                       <url>https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/</url>
                   </repository>
               </repositories>
           </profile>
       </profiles>
       <activeProfiles>
           <activeProfile>default</activeProfile>
       </activeProfiles>
       ...
   </settings>
   ```

   Sie können den `<repositories>` Abschnitt auch zu einer POM-Projekt-Datei hinzufügen, um ihn nur CodeArtifact für dieses Projekt zu verwenden.

   ```
   <project>
   ...
       <repositories>
           <repository>
               <id>codeartifact</id>
               <name>codeartifact</name>
               <url>https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/</url>
           </repository>
       </repositories>
   ...
   </project>
   ```

**Wichtig**  
Sie können einen beliebigen Wert im `<id>` Element verwenden, dieser muss jedoch in den `<repository>` Elementen `<server>` und identisch sein. Dadurch können die angegebenen Anmeldeinformationen in Anfragen an aufgenommen werden CodeArtifact.

Nachdem Sie diese Konfigurationsänderungen vorgenommen haben, können Sie das Projekt erstellen.

```
mvn compile
```

Maven protokolliert die vollständige URL aller Abhängigkeiten, die es auf die Konsole herunterlädt.

```
[INFO] ------------------< com.example.example:myapp >-------------------
[INFO] Building myapp 1.0
[INFO] --------------------------------[ jar ]---------------------------------
Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.pom
Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.pom (11 kB at 3.9 kB/s)
Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom
Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom
Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/org/apache/commons/commons-parent/42/commons-parent-42.pom (68 kB at 123 kB/s)
Downloading from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.jar
Downloaded from codeartifact: https://<domain>.d.codeartifact.us-west-2.amazonaws.com/maven/myrepo/commons-cli/commons-cli/1.4/commons-cli-1.4.jar (54 kB at 134 kB/s)
```

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

Um ein Maven-Artefakt mit in einem CodeArtifact Repository `mvn` zu veröffentlichen, müssen Sie auch das Projekt `~/.m2/settings.xml` POM bearbeiten.

1. Falls nicht, erstellen und speichern Sie ein CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen, wie unter [Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen](tokens-authentication.md#env-var) So richten Sie die Authentifizierung für Ihr Repository ein. CodeArtifact 

1. Fügen Sie einen `<servers>` Abschnitt `settings.xml` mit einem Verweis auf die `CODEARTIFACT_AUTH_TOKEN` Umgebungsvariable hinzu, sodass Maven das Token in HTTP-Anfragen weitergibt.

   ```
   <settings>
   ...
       <servers>
           <server>
               <id>codeartifact</id>
               <username>aws</username>
               <password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
           </server>
       </servers>
   ...
   </settings>
   ```

1. Fügen Sie Ihrem Projekt einen `<distributionManagement>` Abschnitt hinzu. `pom.xml`

   ```
   <project>
   ...
        <distributionManagement>
            <repository>
                <id>codeartifact</id>
                <name>codeartifact</name>
                <url>https://{{my_domain}}-{{111122223333}}.d.codeartifact.us-west-2.amazonaws.com/maven/{{my_repo}}/</url>
            </repository>
        </distributionManagement>
   ...
   </project>
   ```

Nachdem Sie diese Konfigurationsänderungen vorgenommen haben, können Sie das Projekt erstellen und im angegebenen Repository veröffentlichen.

```
mvn deploy
```

Wird verwendet`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:

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

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

Sie können Maven-Artefakte von Drittanbietern in einem CodeArtifact Repository mit `mvn deploy:deploy-file` veröffentlichen. Dies kann für Benutzer hilfreich sein, die Artefakte veröffentlichen möchten und nur über JAR-Dateien verfügen und keinen Zugriff auf Paketquellcode oder POM-Dateien haben.

Der `mvn deploy:deploy-file` Befehl generiert eine POM-Datei auf der Grundlage der in der Befehlszeile übergebenen Informationen.

**Veröffentlichen Sie Maven-Artefakte von Drittanbietern**

1. Falls nicht, erstellen und speichern Sie ein CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen, wie unter [Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen](tokens-authentication.md#env-var) So richten Sie die Authentifizierung für Ihr CodeArtifact Repository ein.

1. Erstellen Sie eine `~/.m2/settings.xml` Datei mit dem folgenden Inhalt:

   ```
   <settings>
       <servers>
           <server>
               <id>codeartifact</id>
               <username>aws</username>
               <password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
           </server>
       </servers>
   </settings>
   ```

1. Führen Sie den Befehl `mvn deploy:deploy-file` aus:

   ```
   mvn deploy:deploy-file -DgroupId=commons-cli          \
   -DartifactId=commons-cli       \
   -Dversion=1.4                  \
   -Dfile=./commons-cli-1.4.jar   \
   -Dpackaging=jar                \
   -DrepositoryId=codeartifact    \
   -Durl=https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{region}}.amazonaws.com/maven/{{repo-name}}/
   ```
**Anmerkung**  
Das obige Beispiel veröffentlicht`commons-cli 1.4`. Ändern Sie die Argumente groupId, artifactID, version und file, um eine andere JAR zu veröffentlichen.

Diese Anweisungen basieren auf Beispielen im [Leitfaden zur Bereitstellung eines JARs Drittanbieter-Repositorys](https://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html) in der *Apache* Maven-Dokumentation. 

## Beschränken Sie das Herunterladen von Maven-Abhängigkeiten auf ein Repository CodeArtifact
<a name="restrict-maven-downloads"></a>

 Wenn ein Paket nicht aus einem konfigurierten Repository abgerufen werden kann, ruft der `mvn` Befehl es standardmäßig von Maven Central ab. Fügen Sie das `mirrors` Element hinzu, damit `settings.xml` Sie `mvn` immer Ihr Repository verwenden können. CodeArtifact 

```
<settings>
  ...
    <mirrors>
      <mirror>
        <id>central-mirror</id>
        <name>CodeArtifact Maven Central mirror</name>
        <url>https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/</url>
        <mirrorOf>central</mirrorOf>
      </mirror>
    </mirrors>
  ...
</settings>
```

Wenn Sie ein `mirrors` Element hinzufügen, müssen Sie auch ein `pluginRepository` Element in Ihrem `settings.xml` oder haben`pom.xml`. Im folgenden Beispiel werden Anwendungsabhängigkeiten und Maven-Plugins aus einem CodeArtifact Repository abgerufen. 

```
<settings>
...
  <profiles>
    <profile>
      <pluginRepositories>
        <pluginRepository>
          <id>codeartifact</id>
          <name>CodeArtifact Plugins</name>
          <url>https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
...
</settings>
```

Im folgenden Beispiel werden Anwendungsabhängigkeiten aus einem CodeArtifact Repository und Maven-Plugins aus Maven Central abgerufen.

```
<profiles>
   <profile>
     <id>default</id>
     ...
     <pluginRepositories>
       <pluginRepository>
         <id>central-plugins</id>
         <name>Central Plugins</name>
         <url>https://repo.maven.apache.org/maven2/</url>
         <releases>
             <enabled>true</enabled>
         </releases>
         <snapshots>
             <enabled>true</enabled>
         </snapshots>
       </pluginRepository>
     </pluginRepositories>
   ....
   </profile>
 </profiles>
```

## Informationen zum Apache Maven-Projekt
<a name="apache-maven-project-info"></a>

Weitere Informationen zu Maven finden Sie in den folgenden Themen auf der Apache Maven Project-Website:
+  [Einrichtung mehrerer Repositorys](https://maven.apache.org/guides/mini/guide-multiple-repositories.html) 
+  [Referenz für Einstellungen](https://maven.apache.org/settings.html) 
+  [Vertriebsmanagement](https://maven.apache.org/pom.html#Distribution_Management) 
+  [Profile](https://maven.apache.org/pom.html#Profiles) 