Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso CodeArtifact con mvn
El comando mvn
se usa para ejecutar compilaciones de Maven. En esta sección se muestra cómo mvn
configurar el uso de un CodeArtifact repositorio.
Temas
Extraer dependencias
mvn
Para configurar la búsqueda de dependencias de un CodeArtifact repositorio, debe editar el archivo de configuración de Maven y, si lo deseasettings.xml
, el de su proyecto. POM
Si no lo has hecho, crea y almacena un token de CodeArtifact autenticación en una variable de entorno como se describe en Pasar un token de autenticación mediante una variable de entorno para configurar la autenticación en tu repositorio. CodeArtifact
-
En
settings.xml
(normalmente se encuentra en~/.m2/settings.xml
), agrega una<servers>
sección con una referencia a la variable deCODEARTIFACT_AUTH_TOKEN
entorno para que Maven transfiera el token en HTTP las solicitudes.<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
-
Agrega el URL punto final de tu CodeArtifact repositorio en un
<repository>
elemento. Puedes hacerlo en el POM archivo de tu proyectosettings.xml
o en él.Puedes recuperar el punto final de tu repositorio mediante el
get-repository-endpoint
AWS CLI comando.Por ejemplo, con un repositorio llamado
my_repo
dentro de un dominio llamadomy_domain
, el comando es el siguiente:aws codeartifact get-repository-endpoint --domain my_domain --repository my_repo --format maven
El comando
get-repository-endpoint
devolverá el punto de conexión del repositorio:url 'https://
my_domain
-111122223333
.d.codeartifact.us-west-2
.amazonaws.com/maven/my_repo
/'nota
Para usar un punto final de doble pila, use el
codeartifact.
punto final.region
.on.awsAñada el punto de conexión del repositorio a
settings.xml
de la siguiente manera.<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>O bien, puede añadir la
<repositories>
sección a un POM archivo de proyecto CodeArtifact para utilizarla únicamente en ese proyecto.<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>
importante
Puede usar cualquier valor en el elemento <id>
, pero debe ser el mismo en los elementos <server>
y <repository>
. Esto permite incluir las credenciales especificadas en las solicitudes para CodeArtifact.
Después de realizar estos cambios de configuración, puede crear el proyecto.
mvn compile
Maven registra todas URL las dependencias que descarga en la consola.
[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)
Publicar artefactos
Para publicar un artefacto de Maven en un CodeArtifact repositorio, también debes editar ~/.m2/settings.xml
el proyecto. mvn
POM
Si no lo has hecho, crea y almacena un token de CodeArtifact autenticación en una variable de entorno como se describe en Pasar un token de autenticación mediante una variable de entorno para configurar la autenticación en tu repositorio. CodeArtifact
-
Agrega una
<servers>
secciónsettings.xml
con una referencia a la variable deCODEARTIFACT_AUTH_TOKEN
entorno para que Maven transmita el token en HTTP las solicitudes.<settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
-
Agregue una sección
<distributionManagement>
alpom.xml
de su proyecto.<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>
Tras realizar estos cambios de configuración, puede crear el proyecto y publicarlo en el repositorio especificado.
mvn deploy
Utilice list-package-versions
para comprobar que el paquete se ha publicado correctamente.
aws codeartifact list-package-versions --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatmaven
\ --namespacecom.company.framework
--packagemy-package-name
Resultado de ejemplo:
{ "defaultDisplayVersion": null, "format": "
maven
", "namespace": "com.company.framework
", "package": "my-package-name
", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }
Publicación de artefactos de terceros
Puedes publicar artefactos de Maven de terceros en un CodeArtifact repositorio con. mvn deploy:deploy-file
Esto puede resultar útil para los usuarios que desean publicar artefactos y solo tienen JAR archivos y no tienen acceso al código fuente o a POM los archivos del paquete.
El mvn deploy:deploy-file
comando generará un POM archivo en función de la información pasada en la línea de comandos.
Publicación de artefactos Maven de terceros
Si no lo ha hecho, cree y almacene un token de CodeArtifact autenticación en una variable de entorno como se describe en Pasar un token de autenticación mediante una variable de entorno para configurar la autenticación en su CodeArtifact repositorio.
-
Cree un archivo
~/.m2/settings.xml
con los siguientes contenidos:<settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> </settings>
-
Ejecute el comando
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
/nota
El ejemplo anterior publica
commons-cli 1.4
. Modifica los groupId argumentos ArtifactID, versión y archivo para publicar uno diferente. JAR
Estas instrucciones se basan en los ejemplos de la guía para implementar un repositorio externo JARs en un repositorio remoto
Restrinja las descargas de dependencias de Maven a un repositorio CodeArtifact
Si un paquete no se puede recuperar de un repositorio configurado, de forma predeterminada, el comando mvn
lo obtiene del central de Maven. Añade el mirrors
elemento a settings.xml
para que mvn
siempre utilices tu CodeArtifact repositorio.
<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 agrega un elemento mirrors
, también debe tener un elemento pluginRepository
en su settings.xml
o pom.xml
. El siguiente ejemplo busca las dependencias de la aplicación y los complementos de Maven de un repositorio. CodeArtifact
<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>
En el siguiente ejemplo, se obtienen las dependencias de las aplicaciones de un CodeArtifact repositorio y se obtienen los complementos de Maven de 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>
Información del proyecto Apache Maven
Para obtener más información sobre Maven, consulte estos temas en el sitio web del Proyecto Apache Maven: