Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser CodeArtifact avec MVN
Vous utilisez la mvn
commande pour exécuter les builds de Maven. Cette section explique comment configurer l'utilisation mvn
d'un CodeArtifact référentiel.
Rubriques
Extraire les dépendances
Pour configurer mvn
afin d'extraire les dépendances d'un CodeArtifact référentiel, vous devez modifier le fichier de configuration Maven et, éventuellementsettings.xml
, celui de votre projet. POM
Si ce n'est pas le cas, créez et stockez un jeton d' CodeArtifact authentification dans une variable d'environnement, comme décrit dans la section Transmettre un jeton d'authentification à l'aide d'une variable d'environnement pour configurer l'authentification auprès de votre CodeArtifact référentiel.
-
Dans
settings.xml
(généralement trouvé à~/.m2/settings.xml
), ajoutez une<servers>
section avec une référence à la variable d'CODEARTIFACT_AUTH_TOKEN
environnement afin que Maven transmette le jeton dans les HTTP requêtes.<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
-
Ajoutez le URL point de terminaison de votre CodeArtifact référentiel dans un
<repository>
élément. Vous pouvez le faire dans lesettings.xml
POM fichier de votre projet.Vous pouvez récupérer le point de terminaison de votre dépôt à l'aide de la
get-repository-endpoint
AWS CLI commande.Par exemple, avec un dépôt nommé
my_repo
dans un domaine nommémy_domain
, la commande est la suivante :aws codeartifact get-repository-endpoint --domain my_domain --repository my_repo --format maven
La
get-repository-endpoint
commande renverra le point de terminaison du référentiel :url 'https://
my_domain
-111122223333
.d.codeartifact.us-west-2
.amazonaws.com/maven/my_repo
/'Note
Pour utiliser un point de terminaison à double pile, utilisez le
codeartifact.
point de terminaison.region
.on.awsAjoutez le point de terminaison du référentiel
settings.xml
comme suit.<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>Vous pouvez également ajouter la
<repositories>
section à un POM fichier de projet CodeArtifact pour l'utiliser uniquement pour ce projet.<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>
Important
Vous pouvez utiliser n'importe quelle valeur dans l'<id>
élément, mais elle doit être identique dans les <repository>
éléments <server>
et. Cela permet d'inclure les informations d'identification spécifiées dans les demandes adressées à CodeArtifact.
Après avoir apporté ces modifications de configuration, vous pouvez créer le projet.
mvn compile
Maven enregistre l'intégralité URL de toutes les dépendances qu'il télécharge sur la console.
[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)
Publier des artefacts
Pour publier un artefact Maven dans un CodeArtifact dépôt, vous devez également le modifier ~/.m2/settings.xml
et le projet. mvn
POM
Si ce n'est pas le cas, créez et stockez un jeton d' CodeArtifact authentification dans une variable d'environnement, comme décrit dans la section Transmettre un jeton d'authentification à l'aide d'une variable d'environnement pour configurer l'authentification auprès de votre CodeArtifact référentiel.
-
Ajoutez une
<servers>
section àsettings.xml
avec une référence à la variable d'CODEARTIFACT_AUTH_TOKEN
environnement afin que Maven transmette le jeton dans les HTTP demandes.<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
-
Ajoutez une
<distributionManagement>
section à celle de votre projetpom.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>
Après avoir apporté ces modifications de configuration, vous pouvez créer le projet et le publier dans le référentiel spécifié.
mvn deploy
list-package-versions
À utiliser pour vérifier que le package a bien été publié.
aws codeartifact list-package-versions --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatmaven
\ --namespacecom.company.framework
--packagemy-package-name
Exemple de sortie :
{ "defaultDisplayVersion": null, "format": "
maven
", "namespace": "com.company.framework
", "package": "my-package-name
", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }
Publier des artefacts tiers
Vous pouvez publier des artefacts Maven tiers dans un CodeArtifact référentiel avecmvn deploy:deploy-file
. Cela peut être utile aux utilisateurs qui souhaitent publier des artefacts et qui ne disposent que de JAR fichiers et qui n'ont pas accès au code source ou aux POM fichiers du package.
La mvn deploy:deploy-file
commande générera un POM fichier basé sur les informations transmises dans la ligne de commande.
Publier des artefacts Maven tiers
Si ce n'est pas le cas, créez et stockez un jeton d' CodeArtifact authentification dans une variable d'environnement, comme décrit dans la section Transmettre un jeton d'authentification à l'aide d'une variable d'environnement pour configurer l'authentification auprès de votre CodeArtifact référentiel.
-
Créez un
~/.m2/settings.xml
fichier avec le contenu suivant :<settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> </settings>
-
Exécutez la commande
mvn deploy:deploy-file
: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
/Note
L'exemple ci-dessus publie
commons-cli 1.4
. Modifiez les groupId arguments artifactID, version et file pour en publier un autre. JAR
Ces instructions sont basées sur des exemples du Guide de déploiement d'un tiers JARs sur un dépôt distant
Restreindre les téléchargements de dépendances Maven à un référentiel CodeArtifact
Si un package ne peut pas être extrait d'un référentiel configuré, par défaut, la mvn
commande le récupère depuis Maven Central. Ajoutez l'mirrors
élément settings.xml
to pour mvn
toujours utiliser votre CodeArtifact dépôt.
<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>
Si vous ajoutez un mirrors
élément, vous devez également en avoir un pluginRepository
dans votre settings.xml
oupom.xml
. L'exemple suivant extrait les dépendances des applications et les plug-ins Maven depuis un CodeArtifact référentiel.
<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>
L'exemple suivant extrait les dépendances des applications depuis un CodeArtifact référentiel et extrait les plug-ins Maven depuis Maven Central.
<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>
Informations sur le projet Apache Maven
Pour plus d'informations sur Maven, consultez les rubriques suivantes sur le site Web du projet Apache Maven :