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, proyek Anda. 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. Dalam settings.xml (biasanya ditemukan di~/.m2/settings.xml), tambahkan <servers> bagian dengan referensi ke variabel CODEARTIFACT_AUTH_TOKEN lingkungan sehingga Maven meneruskan token dalam HTTP permintaan.

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

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

    Misalnya, dengan repositori bernama my_repo di dalam domain bernama my_domain, perintahnya 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/'
    catatan

    Untuk menggunakan endpoint dualstack, gunakan endpoint. codeartifact.region.on.aws

    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 POM file 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 semua dependensi yang diunduh ke konsol. URL

[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 dan proyek. ~/.m2/settings.xml 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 <servers> bagian settings.xml dengan referensi ke variabel CODEARTIFACT_AUTH_TOKEN lingkungan sehingga Maven meneruskan token dalam HTTP permintaan.

    <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 Ini dapat membantu pengguna yang ingin mempublikasikan artefak dan hanya memiliki JAR file dan tidak memiliki akses ke kode sumber paket atau POM file.

mvn deploy:deploy-filePerintah akan menghasilkan POM file berdasarkan informasi yang diteruskan di 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 argumengroupId, ArtifactID, versi, dan file untuk mempublikasikan yang berbeda. JAR

Instruksi ini didasarkan pada contoh dalam Panduan untuk menyebarkan pihak JARs ke-3 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: