Gunakan CodeArtifact dengan mvn - CodeArtifact

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

Gunakan CodeArtifact dengan mvn

Anda menggunakan perintah mvn untuk mengeksekusi build Maven. Bagian ini menunjukkan cara mengkonfigurasi mvn untuk menggunakan CodeArtifact repositori.

Mengambil dependensi

Untuk mengonfigurasi mvn untuk mengambil dependensi dari CodeArtifact repositori, Anda harus mengedit file konfigurasi Maven, dan secara opsionalsettings.xml, POM proyek Anda.

  1. Jika belum, buat dan simpan token CodeArtifact autentikasi dalam variabel lingkungan seperti yang dijelaskan Teruskan token auth menggunakan variabel lingkungan untuk menyiapkan otentikasi ke repositori Anda CodeArtifact .

  2. Dalam settings.xml (biasanya ditemukan di ~/.m2/settings.xml), tambahkan bagian <servers> dengan referensi ke variabel lingkungan CODEARTIFACT_AUTH_TOKEN sehingga Maven meneruskan token dalam permintaan HTTP.

    <settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
  3. Tambahkan titik akhir URL untuk CodeArtifact repositori Anda dalam sebuah elemen. <repository> Anda dapat melakukan hal ini di settings.xml atau file POM proyek Anda.

    Anda dapat mengambil titik akhir repositori Anda menggunakan perintah get-repository-endpoint AWS CLI.

    Misalnya, dengan repositori bernama my_repo di dalam domain bernama my_domain, perintah yang digunakan adalah sebagai berikut:

    aws codeartifact get-repository-endpoint --domain my_domain --repository my_repo --format maven

    Parameter perintah get-repository-endpoint akan mengembalikan titik akhir repositori:

    url 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/maven/my_repo/'

    Tambahkan titik akhir repositori ke settings.xml sebagai berikut.

    <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>

    Atau, Anda dapat menambahkan <repositories> bagian ke file POM proyek untuk digunakan hanya CodeArtifact untuk proyek itu.

    <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>
penting

Anda dapat menggunakan nilai apa pun dalam elemen <id>, tetapi harus sama di elemen <server> dan <repository>. Hal ini memungkinkan kredensi yang ditentukan untuk dimasukkan dalam permintaan untuk. CodeArtifact

Setelah membuat perubahan konfigurasi ini, Anda dapat membangun proyek.

mvn compile

Maven mencatat URL lengkap dari semua dependensi yang diunduhnya ke konsol.

[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)

Memublikasikan artefak

Untuk mempublikasikan artefak Maven dengan mvn ke CodeArtifact repositori, Anda juga harus mengedit ~/.m2/settings.xml dan proyek POM.

  1. Jika belum, buat dan simpan token CodeArtifact autentikasi dalam variabel lingkungan seperti yang dijelaskan Teruskan token auth menggunakan variabel lingkungan untuk menyiapkan otentikasi ke repositori Anda CodeArtifact .

  2. Tambahkan bagian <servers> ke settings.xmldengan referensi ke variabel lingkungan CODEARTIFACT_AUTH_TOKEN sehingga Maven meneruskan token dalam permintaan HTTP.

    <settings> ... <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> ... </settings>
  3. Tambahkan bagian <distributionManagement> ke pom.xml.

    <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>

Setelah membuat perubahan konfigurasi ini, Anda dapat membangun proyek dan memublikasikannya ke repositori yang ditentukan.

mvn deploy

Gunakan list-package-versions untuk memeriksa bahwa paket berhasil dipublikasikan.

aws codeartifact list-package-versions --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven \ --namespace com.company.framework --package my-package-name

Contoh output:

{ "defaultDisplayVersion": null, "format": "maven", "namespace": "com.company.framework", "package": "my-package-name", "versions": [ { "version": "1.0", "revision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published" } ] }

Memublikasikan artefak pihak ketiga

Anda dapat mempublikasikan artefak Maven pihak ketiga ke repositori dengan CodeArtifact . mvn deploy:deploy-file Hal ini dapat membantu pengguna yang ingin memublikasikan artefak dan hanya memiliki file JAR dan tidak memiliki akses ke kode sumber paket atau file POM.

Perintah mvn deploy:deploy-file akan menghasilkan file POM berdasarkan informasi yang dikirimkan pada baris perintah.

Memublikasikan artefak Maven pihak ketiga
  1. Jika belum, buat dan simpan token CodeArtifact autentikasi dalam variabel lingkungan seperti yang dijelaskan Teruskan token auth menggunakan variabel lingkungan untuk menyiapkan otentikasi ke repositori Anda CodeArtifact .

  2. Buat file ~/.m2/settings.xml dengan konten berikut ini:

    <settings> <servers> <server> <id>codeartifact</id> <username>aws</username> <password>${env.CODEARTIFACT_AUTH_TOKEN}</password> </server> </servers> </settings>
  3. Jalankan perintah 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/
    catatan

    Contoh di atas memublikasikan commons-cli 1.4. Ubah groupId, artifactID, versi, dan file argumen untuk memublikasikan JAR yang berbeda.

Instruksi ini didasarkan pada contoh dalam Panduan men-deploy JAR pihak ketiga ke repositori jarak jauh dari Dokumentasi Apache Maven.

Batasi unduhan ketergantungan Maven ke repositori CodeArtifact

Jika paket tidak dapat diambil dari repositori yang dikonfigurasi, secara default, perintah mvn mengambilnya dari Maven Central. Tambahkan mirrors elemen settings.xml untuk membuat mvn selalu menggunakan CodeArtifact repositori Anda.

<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>

Jika Anda menambahkan elemen mirrors, Anda juga harus memiliki elemen pluginRepository di settings.xml atau pom.xml. Contoh berikut mengambil dependensi aplikasi dan plugin Maven dari repositori. 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>

Contoh berikut mengambil dependensi aplikasi dari CodeArtifact repositori dan mengambil plugin Maven dari 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>

Informasi Proyek Apache Maven

Untuk informasi lebih lanjut tentang Maven, lihat topik ini di situs web Proyek Apache Maven: