GunakanCodeArtifactdengan Gradle - CodeArtifact

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

GunakanCodeArtifactdengan Gradle

Setelah Anda memilikiCodeArtifacttoken autentikasi dalam variabel lingkungan seperti yang dijelaskan dalamLulus token autentikasi menggunakan variabel lingkungan, ikuti petunjuk ini untuk menggunakan paket Maven dari, dan menerbitkan paket baru ke, aCodeArtifactrepositori.

Mengambil dependensi

Untuk mengambil dependensi dariCodeArtifactdalam build Gradle, gunakan prosedur berikut.

Untuk mengambil dependensi dariCodeArtifactdalam build Gradle
  1. Jika belum, buat dan simpanCodeArtifacttoken autentikasi dalam variabel lingkungan dengan mengikuti prosedur diTeruskan token auth menggunakan variabel lingkungan.

  2. Menambahkanmavenbagian kerepositoriesbagian dalam proyekbuild.gradleberkas.

    maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } }

    TheurlDalam contoh sebelumnya adalahCodeArtifacttitik akhir repositori. Gradle menggunakan titik akhir untuk terhubung ke repositori Anda. Dalam sampel, my_domain adalah nama domain Anda, 111122223333 adalah ID pemilik domain, dan my_repo adalah nama repositori Anda. Anda dapat mengambil titik akhir repositori dengan 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 --domain-owner 111122223333 --repository my_repo --format maven

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

    url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/'

    Thecredentialsobjek dalam contoh sebelumnya termasukCodeArtifacttoken autentikasi yang Anda buat di Langkah 1 yang digunakan Gradle untuk mengautentikasiCodeArtifact.

  3. (Opsional) - Untuk menggunakanCodeArtifactrepositori sebagai satu-satunya sumber untuk dependensi proyek Anda, hapus bagian lain direpositoriesdaribuild.gradle. Jika Anda memiliki lebih dari satu repositori, Gradle menelusuri setiap repositori untuk dependensi sesuai urutan pencantumannya.

  4. Setelah mengonfigurasi repositori, Anda dapat menambahkan dependensi proyek ke bagian dependencies dengan sintaks Gradle standar.

    dependencies { implementation 'com.google.guava:guava:27.1-jre' implementation 'commons-cli:commons-cli:1.4' testImplementation 'org.testng:testng:6.14.3' }

Mengambil plugin

Secara default Gradle akan menyelesaikan plugin dari Portal Plugin Gradle publik. Untuk menarik plugin dariCodeArtifactrepositori, gunakan prosedur berikut.

Untuk menarik plugin dariCodeArtifactrepositori
  1. Jika belum, buat dan simpanCodeArtifacttoken autentikasi dalam variabel lingkungan dengan mengikuti prosedur diTeruskan token auth menggunakan variabel lingkungan.

  2. MenambahkanpluginManagementblokir ke Andasettings.gradleberkas. ThepluginManagementblok harus muncul sebelum pernyataan lain disettings.gradle, lihat cuplikan berikut:

    pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password System.env.CODEARTIFACT_AUTH_TOKEN } } } }

Hal ini akan memastikan bahwa Gradle menyelesaikan plugin dari repositori yang ditentukan. Repositori harus memiliki repositori hulu dengan koneksi eksternal ke Portal Plugin Gradle (mis. gradle-plugins-store) sehingga plugin Gradle yang umum diperlukan tersedia untuk build. Untuk informasi selengkapnya, lihat Dokumentasi Gradle.

Memublikasikan artefak

Bagian ini menjelaskan cara mempublikasikan pustaka Java yang dibangun dengan Gradle keCodeArtifactrepositori.

Pertama, tambahkan plugin maven-publish ke bagian plugins dari file build.gradle proyek.

plugins { id 'java-library' id 'maven-publish' }

Selanjutnya, tambahkan bagian publishing ke file build.gradle proyek.

publishing { publications { mavenJava(MavenPublication) { groupId = 'group-id' artifactId = 'artifact-id' version = 'version' from components.java } } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password System.env.CODEARTIFACT_AUTH_TOKEN } } } }

Plugin maven-publish menghasilkan file POM berdasarkan groupId, artifactId, dan version yang ditentukan dalam bagian publishing.

Setelah perubahan ke build.gradle selesai, jalankan perintah berikut untuk membangun proyek dan mengunggah ke repositori.

./gradlew publish

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:

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

Untuk informasi selengkapnya, lihat topik berikut di situs web Gradle:

Menjalankan build Gradle di IntelliJ IDEA

Anda dapat menjalankan build Gradle di IntelliJ IDEA yang menarik dependensi dariCodeArtifact. Untuk mengautentikasi denganCodeArtifact, Anda harus memberikan Gradle denganCodeArtifacttoken otorisasi. Ada tiga metode untuk menyediakan token auth.

  • Metode 1: Menyimpan token autentikasi digradle.properties. Gunakan metode ini jika Anda dapat menimpa atau menambah isigradle.propertiesberkas.

  • Metode 2: Menyimpan token autentikasi dalam file terpisah. Gunakan metode ini jika Anda tidak ingin memodifikasi file gradle.properties.

  • Metode 3: Menghasilkan token autentikasi baru untuk setiap proses dengan menjalankanawssebagai skrip inline dibuild.gradle. Gunakan metode ini jika Anda ingin skrip Gradle mengambil token baru pada setiap proses. Token tidak akan disimpan di sistem file.

Token stored in gradle.properties
Metode 1: Menyimpan token autentikasi digradle.properties
catatan

Contoh menunjukkan file gradle.properties yang berada di GRADLE_USER_HOME.

  1. Perbarui file build.gradle dengan cuplikan berikut:

    repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password "$codeartifactToken" } } }
  2. Untuk mengambil plugin dariCodeArtifact, tambahkanpluginManagementblokir ke Andasettings.gradleberkas. ThepluginManagementblok harus muncul sebelum pernyataan lain disettings.gradle.

    pluginManagement { repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password "$codeartifactToken" } } } }
  3. AmbilCodeArtifacttoken autentikasi:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. Tulis token auth ke dalam file gradle.properties:

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > ~/.gradle/gradle.properties
Token stored in separate file
Metode 2: Menyimpan token autentikasi dalam file terpisah
  1. Perbarui file build.gradle dengan cuplikan berikut:

    def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password props.getProperty("codeartifactToken") } } }
  2. Untuk mengambil plugin dariCodeArtifact, tambahkanpluginManagementblokir ke Andasettings.gradleberkas. ThepluginManagementblok harus muncul sebelum pernyataan lain disettings.gradle.

    pluginManagement { def props = new Properties() file("file").withInputStream { props.load(it) } repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password props.getProperty("codeartifactToken") } } } }
  3. AmbilCodeArtifacttoken autentikasi:

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name`
  4. Tulis token auth ke dalam file yang ditentukan dalam file build.gradle Anda:

    echo "codeartifactToken=$CODEARTIFACT_AUTH_TOKEN" > file
Token generated for each run in build.gradle
Metode 3: Menghasilkan token autentikasi baru untuk setiap proses dengan menjalankanawssebagai skrip inline dibuild.gradle
  1. Perbarui file build.gradle dengan cuplikan berikut:

    def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username "aws" password codeartifactToken } } }
  2. Untuk mengambil plugin dariCodeArtifact, tambahkanpluginManagementblokir ke Andasettings.gradleberkas. ThepluginManagementblok harus muncul sebelum pernyataan lain disettings.gradle.

    pluginManagement { def codeartifactToken = "aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text --profile profile-name".execute().text repositories { maven { name 'my_repo' url 'https://my_domain-111122223333.codeartifact.region.amazonaws.com/maven/my_repo/' credentials { username 'aws' password codeartifactToken } } } }