CodeArtifact Mit MVN 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 MVN verwenden

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

Abhängigkeiten abrufen

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

  1. Falls nicht, erstellen und speichern Sie ein CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen, wie unter Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen So richten Sie die Authentifizierung für Ihr Repository ein. CodeArtifact

  2. Fügen Sie in 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>
  3. Fügen Sie den URL Endpunkt für Ihr CodeArtifact Repository in einem <repository> Element hinzu. Sie können dies in der 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.

    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 --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 Projektdatei 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 alle Abhängigkeiten, die es auf die Konsole herunterlädt, vollständigURL.

[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)

Veröffentlichen Sie Artefakte

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

  1. Falls nicht, erstellen und speichern Sie ein CodeArtifact Authentifizierungstoken in einer Umgebungsvariablen, wie unter Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen So richten Sie die Authentifizierung für Ihr Repository ein. CodeArtifact

  2. 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>
  3. 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 verwendetlist-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

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 den Quellcode oder die POM Dateien des Pakets 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 So richten Sie die Authentifizierung für Ihr CodeArtifact Repository ein.

  2. 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>
  3. 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öffentlichtcommons-cli 1.4. Ändern Sie die ArgumentegroupId, artifactID, version und file, um eine andere zu veröffentlichen. JAR

Diese Anweisungen basieren auf Beispielen im Leitfaden zur Bereitstellung eines JARs Drittanbieter-Repositorys in der Apache Maven-Dokumentation.

Beschränken Sie das Herunterladen von Maven-Abhängigkeiten auf ein Repository CodeArtifact

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

Weitere Informationen zu Maven finden Sie in den folgenden Themen auf der Apache Maven Project-Website: