

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

# Meminta paket Maven dari upstream dan koneksi eksternal
<a name="maven-upstream-external-connections-request"></a>



## Mengimpor nama aset standar
<a name="maven-import-standard-asset-names"></a>

Saat mengimpor versi paket Maven dari repositori publik, seperti Maven Central, AWS CodeArtifact mencoba mengimpor semua aset dalam versi paket tersebut. Seperti dijelaskan dalam[Meminta versi paket dengan repositori hulu](repo-upstream-behavior.md), pengimporan terjadi ketika:
+ Klien meminta aset Maven dari repositori. CodeArtifact 
+ Versi paket belum ada di repositori atau upstreams nya.
+ Ada koneksi eksternal yang dapat dijangkau ke repositori Maven publik.

Meskipun klien mungkin hanya meminta satu aset, CodeArtifact upaya untuk mengimpor semua aset yang dapat ditemukan untuk versi paket tersebut. Bagaimana CodeArtifact menemukan aset mana yang tersedia untuk versi paket Maven tergantung pada repositori publik tertentu. Beberapa repositori Maven publik mendukung permintaan daftar aset, tetapi yang lain tidak. Untuk repositori yang tidak menyediakan cara untuk membuat daftar aset, CodeArtifact menghasilkan satu set nama aset yang mungkin ada. Misalnya, ketika aset apa pun dari versi `junit 4.13.2` paket Maven diminta, CodeArtifact akan mencoba mengimpor aset berikut:
+ `junit-4.13.2.pom`
+ `junit-4.13.2.jar`
+ `junit-4.13.2-javadoc.jar`
+ `junit-4.13.2-sources.jar`

## Mengimpor nama aset non-standar
<a name="maven-import-nonstandard-asset-names"></a>

Ketika klien Maven meminta aset yang tidak cocok dengan salah satu pola yang dijelaskan di atas, CodeArtifact periksa untuk melihat apakah aset tersebut ada di repositori publik. Jika aset ada, itu akan diimpor dan ditambahkan ke catatan versi paket yang ada, jika ada. Misalnya, versi paket Maven `com.android.tools.build:aapt2 7.3.1-8691043` berisi aset berikut:
+ `aapt2-7.3.1-8691043.pom`
+ `aapt2-7.3.1-8691043-windows.jar`
+ `aapt2-7.3.1-8691043-osx.jar`
+ `aapt2-7.3.1-8691043-linux.jar`

Ketika klien meminta file POM, jika CodeArtifact tidak dapat mencantumkan aset versi paket, POM akan menjadi satu-satunya aset yang diimpor. Ini karena tidak ada aset lain yang cocok dengan pola nama aset standar. Namun, ketika klien meminta salah satu aset JAR, aset tersebut akan diimpor dan ditambahkan ke versi paket yang ada yang disimpan di CodeArtifact. Versi paket di repositori paling hilir (repositori yang diminta klien) dan repositori dengan koneksi eksternal yang dilampirkan akan diperbarui untuk memuat aset baru, seperti yang dijelaskan dalam. [Retensi paket dari repositori hulu](repo-upstream-behavior.md#package-retention-upstream-repos)

Biasanya, setelah versi paket dipertahankan dalam CodeArtifact repositori, itu tidak terpengaruh oleh perubahan dalam repositori upstream. Untuk informasi selengkapnya, lihat [Retensi paket dari repositori hulu](repo-upstream-behavior.md#package-retention-upstream-repos). Namun, perilaku aset Maven dengan nama non-standar yang dijelaskan sebelumnya merupakan pengecualian untuk aturan ini. Meskipun versi paket hilir tidak akan berubah tanpa aset tambahan yang diminta oleh klien, dalam situasi ini, versi paket yang dipertahankan dimodifikasi setelah awalnya dipertahankan dan karenanya tidak dapat diubah. Perilaku ini diperlukan karena aset Maven dengan nama non-standar tidak akan dapat diakses melalui. CodeArtifact Perilaku ini juga memungkinkan jika ditambahkan ke versi paket Maven di repositori publik setelah versi paket dipertahankan dalam repositori. CodeArtifact 

## Memeriksa asal-usul aset
<a name="origin-checks-for-assets"></a>

Saat menambahkan aset baru ke versi paket Maven yang dipertahankan sebelumnya, CodeArtifact konfirmasikan asal versi paket yang ditahan sama dengan asal aset baru. Ini mencegah pembuatan versi paket “campuran” di mana aset yang berbeda berasal dari repositori publik yang berbeda. Tanpa pemeriksaan ini, pencampuran aset dapat terjadi jika versi paket Maven diterbitkan ke lebih dari satu repositori publik dan repositori tersebut adalah bagian dari grafik hulu repositori. CodeArtifact 

## Mengimpor aset baru dan status versi paket di repositori hulu
<a name="new-asset-importing-pv-status-upstream-repos"></a>

[Status versi paket versi](packages-overview.md#package-version-status) paket di repositori hulu dapat CodeArtifact mencegah mempertahankan versi tersebut di repositori hilir.

Sebagai contoh, katakanlah sebuah domain memiliki tiga repositori:`repo-A`,, dan `repo-B``repo-C`, di mana `repo-B` adalah upsteam dari `repo-A` dan `repo-C` upstream dari. `repo-B`

![Diagram tentang cara kerja aset dan versi paket baru di repositori hulu.](http://docs.aws.amazon.com/id_id/codeartifact/latest/ug/images/Maven-new-asset-pv-upstream.png)


Package `7.3.1` versi paket Maven `com.android.tools.build:aapt2` hadir `repo-B` dan memiliki status. `Published` Itu tidak hadir di`repo-A`. Jika klien meminta aset versi paket ini dari`repo-A`, responsnya akan menjadi 200 (OK) dan versi paket Maven `7.3.1` akan dipertahankan. `repo-A` Namun, jika status versi paket `7.3.1` di `repo-B` adalah `Archived` atau`Disposed`, responsnya akan menjadi 404 (Tidak Ditemukan) karena aset versi paket di kedua status tersebut tidak dapat diunduh.

Perhatikan bahwa menyetel [kontrol asal paket](package-origin-controls.md) ke `upstream=BLOCK` for `com.android.tools.build:aapt2` in `repo-A``repo-B`,, dan `repo-C` akan mencegah aset baru diambil untuk semua versi paket tersebut`repo-A`, terlepas dari status versi paket. 