

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

É possível usar `deps.edn` com `clj` para gerenciar dependências para projetos do Clojure. Esta seção mostra como configurar o `deps.edn` para usar um repositório do CodeArtifact.

**Topics**
+ [Buscar dependências](#fetching-dependencies-deps)
+ [Publicar artefatos](#publishing-artifacts-deps)

## Buscar dependências
<a name="fetching-dependencies-deps"></a>

Para configurar o `Clojure` para buscar dependências de um repositório do CodeArtifact, você deve editar o arquivo de configuração do Maven, `settings.xml`.

1. Em `settings.xml`, adicione uma seção `<servers>` com uma referência à variável de ambiente `CODEARTIFACT_AUTH_TOKEN` para que o Clojure passe o token nas solicitações HTTP.
**nota**  
O Clojure supõe que o arquivo settings.xml esteja localizado em `~/.m2/settings.xml`. Se estiver em outro lugar, crie o arquivo nesse local.

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

1. Se você ainda não tiver um, gere um POM xml para seu projeto usando `clj -Spom`.

1. No seu arquivo de configuração `deps.edn`, adicione um repositório que corresponda ao ID do servidor do 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` garante que os repositórios `central` e `clojars` sejam verificados primeiro para as bibliotecas do Maven. Depois disso, os outros repositórios listados em `deps.edn` serão verificados.
Para evitar o download direto do Clojars e do Maven Central, `central` e `clojars` precisam ser configurados como `nil`.

   Verifique se você tem o token de autenticação do CodeArtifact em uma variável de ambiente (consulte [Passar um token de autenticação usando uma variável de ambiente](tokens-authentication.md#env-var)). Ao criar o pacote após essas alterações, as dependências em `deps.edn` serão obtidas do CodeArtifact.
**nota**  
Para usar um endpoint de pilha dupla, use o endpoint `codeartifact.{{region}}.on.aws`.

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

1. Atualize suas configurações do Maven e `deps.edn` para incluir o CodeArtifact como um servidor reconhecido pelo Maven (consulte [Buscar dependências](#fetching-dependencies-deps)). Você pode usar uma ferramenta como [deps-deploy](https://github.com/slipset/deps-deploy) para fazer upload de artefatos no CodeArtifact.

1. No seu `build.clj`, adicione uma tarefa `deploy` para carregar os artefatos necessários no repositório `codeartifact` configurado anteriormente.

   ```
   (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 o artefato executando o comando: `clj -T:build deploy`

Para obter mais informações sobre a modificação de repositórios padrão, consulte [Modificar repositórios padrão](https://clojure.org/reference/deps_and_cli#_modifying_the_default_repositories) no *Clojure Deps e Lógica da referência da CLI*.