

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Gunakan CodeArtifact dengan deps.edn
<a name="maven-deps"></a>

Anda menggunakan `deps.edn` with `clj` untuk mengelola dependensi untuk proyek Clojure. Bagian ini menunjukkan cara mengkonfigurasi `deps.edn` untuk menggunakan CodeArtifact repositori.

**Topics**
+ [Mengambil dependensi](#fetching-dependencies-deps)
+ [Memublikasikan artefak](#publishing-artifacts-deps)

## Mengambil dependensi
<a name="fetching-dependencies-deps"></a>

Untuk mengkonfigurasi `Clojure` untuk mengambil dependensi dari CodeArtifact repositori, Anda harus mengedit file konfigurasi Maven,. `settings.xml`

1. Di`settings.xml`, tambahkan `<servers>` bagian dengan referensi ke variabel `CODEARTIFACT_AUTH_TOKEN` lingkungan sehingga Clojure melewati token dalam permintaan HTTP.
**catatan**  
Clojure mengharapkan file settings.xml berada di. `~/.m2/settings.xml` Jika di tempat lain, buat file di lokasi ini.

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

1. Jika Anda belum memilikinya, buat POM xmluntuk proyek Anda menggunakan. `clj -Spom`

1. Dalam file `deps.edn` konfigurasi Anda, tambahkan repositori yang cocok dengan id server dari 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/"}
   }
   ```
**catatan**  
`tools.deps`menjamin bahwa `central` dan `clojars` repositori akan diperiksa terlebih dahulu untuk perpustakaan Maven. Setelah itu, repositori lain yang terdaftar `deps.edn` akan diperiksa.
Untuk mencegah pengunduhan dari Clojars dan Maven Central secara langsung, `central` dan `clojars` perlu diatur ke. `nil`

   Pastikan Anda memiliki token CodeArtifact Auth dalam variabel lingkungan (lihat[Teruskan token auth menggunakan variabel lingkungan](tokens-authentication.md#env-var)). Saat membangun paket setelah perubahan ini, dependensi di `deps.edn` akan diambil dari. CodeArtifact
**catatan**  
Untuk menggunakan endpoint dualstack, gunakan endpoint. `codeartifact.{{region}}.on.aws`

## Memublikasikan artefak
<a name="publishing-artifacts-deps"></a>

1. Perbarui pengaturan Maven Anda dan `deps.edn` sertakan CodeArtifact sebagai server yang diakui maven (lihat). [Mengambil dependensi](#fetching-dependencies-deps) Anda dapat menggunakan alat seperti [deps-deploy](https://github.com/slipset/deps-deploy) untuk mengunggah artefak. CodeArtifact

1. Di Anda`build.clj`, tambahkan `deploy` tugas untuk mengunggah artefak yang diperlukan ke `codeartifact` repositori penyiapan sebelumnya.

   ```
   (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. Publikasikan artefak dengan menjalankan perintah: `clj -T:build deploy`

*Untuk informasi selengkapnya tentang memodifikasi repositori default, lihat [Memodifikasi repositori default di Clojure Deps dan Rasional](https://clojure.org/reference/deps_and_cli#_modifying_the_default_repositories) Referensi CLI.*