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.
Topik
Mengambil dependensi
Untuk mengonfigurasi mvn
untuk mengambil dependensi dari CodeArtifact repositori, Anda harus mengedit file konfigurasi Maven, dan secara opsionalsettings.xml
, proyek Anda. POM
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 .
-
Dalam
settings.xml
(biasanya ditemukan di~/.m2/settings.xml
), tambahkan<servers>
bagian dengan referensi ke variabelCODEARTIFACT_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>
-
Tambahkan URL titik akhir untuk CodeArtifact repositori Anda dalam sebuah elemen.
<repository>
Anda dapat melakukan ini disettings.xml
atau POM file proyek Anda.Anda dapat mengambil endpoint repositori Anda dengan menggunakan perintah.
get-repository-endpoint
AWS CLIMisalnya, dengan repositori bernama
my_repo
di dalam domain bernamamy_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.awsTambahkan 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
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 .
-
Tambahkan
<servers>
bagiansettings.xml
dengan referensi ke variabelCODEARTIFACT_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>
-
Tambahkan bagian
<distributionManagement>
kepom.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-owner111122223333
--repositorymy_repo
--formatmaven
\ --namespacecom.company.framework
--packagemy-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-file
Perintah akan menghasilkan POM file berdasarkan informasi yang diteruskan di baris perintah.
Memublikasikan artefak Maven pihak ketiga
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 .
-
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>
-
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
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: