

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.

# Usar CodeArtifact con deps.edn
<a name="maven-deps"></a>

Se usa `deps.edn` con `clj` para administrar las dependencias de los proyectos de Clojure. En esta sección se muestra cómo configurar `deps.edn` para usar un repositorio de CodeArtifact.

**Topics**
+ [Extraer dependencias](#fetching-dependencies-deps)
+ [Publicar artefactos](#publishing-artifacts-deps)

## Extraer dependencias
<a name="fetching-dependencies-deps"></a>

Para configurar `Clojure` para recuperar dependencias de un repositorio de CodeArtifact, debe editar el archivo de configuración de Maven, `settings.xml`.

1. En `settings.xml`, añada una sección `<servers>` con una referencia a la variable de entorno `CODEARTIFACT_AUTH_TOKEN` para que Clojure pase el token en las solicitudes HTTP.
**nota**  
Clojure espera que el archivo settings.xml esté ubicado en `~/.m2/settings.xml`. Si está en otro lugar, cree el archivo en esta ubicación.

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

1. Si aún no tiene uno, genere un XML POM para su proyecto utilizando `clj -Spom`.

1. En su archivo de configuración `deps.edn`, añada un repositorio que coincida con el identificador del servidor de Maven `settings.xml`.

   ```
   :mvn/repos {
     "clojars" nil
     "central" nil
     "codeartifact" {:url "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/"}
   }
   ```
**nota**  
`tools.deps` garantiza que los repositorios `central` y `clojars` se comprueben primero para ver si hay bibliotecas de Maven. Después, se revisarán los demás repositorios listados en `deps.edn`.
Para evitar que se descarguen directamente desde Clojars y Maven Central, hay que configurar `central` y `clojars` en `nil`.

   Asegúrese de tener el token de autenticación de CodeArtifact en una variable de entorno (consulte [Pasar un token de autenticación mediante una variable de entorno](tokens-authentication.md#env-var)). Al compilar el paquete después de estos cambios, las dependencias en `deps.edn` se obtendrán de CodeArtifact.
**nota**  
Si quiere utilizar un punto de conexión de pila doble, use el punto de conexión `codeartifact.{{region}}.on.aws`.

## Publicar artefactos
<a name="publishing-artifacts-deps"></a>

1. Actualice su configuración de Maven y `deps.edn` para incluir CodeArtifact como un servidor reconocido por Maven (consulte [Extraer dependencias](#fetching-dependencies-deps)). Puede usar una herramienta como [deps-deploy](https://github.com/slipset/deps-deploy) para cargar artefactos en CodeArtifact.

1. En su `build.clj`, añada una tarea `deploy` para cargar los artefactos necesarios en el repositorio `codeartifact` previamente configurado.

   ```
   (ns build
   (:require [deps-deploy.deps-deploy :as dd]))
   
   (defn deploy [_]
     (dd/deploy {:installer :remote
             :artifact "PATH_TO_JAR_FILE.jar"
             :pom-file "pom.xml" ;; pom containing artifact coordinates
             :repository "codeartifact"}))
   ```

1. Publique el artefacto ejecutando el comando `clj -T:build deploy`:

Para obtener más información sobre la modificación de los repositorios predeterminados, consulte [Modificación de los repositorios predeterminados](https://clojure.org/reference/deps_and_cli#_modifying_the_default_repositories) en *Clojure Deps y CLI Reference Rationale*.