Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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
, POM proyek Anda.
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 bagian<servers>
dengan referensi ke variabel lingkunganCODEARTIFACT_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>
-
Tambahkan titik akhir URL untuk CodeArtifact repositori Anda dalam sebuah elemen.
<repository>
Anda dapat melakukan hal ini disettings.xml
atau file POM 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 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.
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 bagian
<servers>
kesettings.xml
dengan referensi ke variabel lingkunganCODEARTIFACT_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>
-
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
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
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 groupId, artifactID, versi, dan file argumen untuk memublikasikan JAR yang berbeda.
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 Apache Maven Project: