

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

# Menyiapkan AWS SDK untuk Java 2.x
<a name="setup"></a>

Bagian ini memberikan informasi tentang cara mengatur lingkungan pengembangan dan proyek Anda untuk menggunakan AWS SDK for Java 2.x.

## Gambaran umum pengaturan
<a name="setup-overview"></a>

Untuk berhasil mengembangkan aplikasi yang mengakses Layanan AWS menggunakan AWS SDK untuk Java, kondisi berikut diperlukan:
+ Java SDK harus memiliki akses ke kredensional untuk [mengautentikasi permintaan](get-started-auth.md#setup-auth) atas nama Anda.
+ [Izin peran IAM yang](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) dikonfigurasi untuk SDK harus mengizinkan akses ke Layanan AWS yang dibutuhkan aplikasi Anda. Izin yang terkait dengan kebijakan **PowerUserAccess** AWS terkelola cukup untuk sebagian besar kebutuhan pengembangan.
+ Lingkungan pengembangan dengan elemen-elemen berikut:
  + [File konfigurasi bersama](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) yang diatur setidaknya dalam salah satu cara berikut:
    + `config`File ini berisi [pengaturan masuk tunggal Pusat Identitas IAM](get-started-auth.md#setup-credentials) sehingga SDK bisa mendapatkan kredensi. AWS 
    + `credentials`File tersebut berisi kredensial sementara.
  + [Instalasi Java 8](setup-java-buildtool.md) atau yang lebih baru.
  + [Alat otomatisasi build](setup-java-buildtool.md) [seperti [Maven](https://maven.apache.org/download.cgi) atau Gradle.](https://gradle.org/install/)
  + Editor teks untuk bekerja dengan kode.
  + (Opsional, tetapi disarankan) IDE (lingkungan pengembangan terintegrasi) seperti [IntelliJ](https://www.jetbrains.com/idea/download/#section=windows) IDEA[, Eclipse,](https://www.eclipse.org/ide/) atau. [NetBeans](https://netbeans.apache.org/front/main/download/index.html)

    Jika Anda menggunakan IntelliJ IDEA, Anda juga dapat menambahkan IDEA untuk [AWS Toolkit for IntelliJLayanan AWS diintegrasikan](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html) langsung ke IDE untuk membantu Anda merampingkan pengembangan.
+ Sesi portal AWS akses aktif saat Anda siap menjalankan aplikasi Anda. Anda menggunakan AWS Command Line Interface untuk [memulai proses masuk ke portal akses](get-started-auth.md#setup-login-sso) IAM Identity Center. AWS 

**penting**  
Petunjuk di bagian penyiapan ini mengasumsikan bahwa Anda atau organisasi menggunakan IAM Identity Center. Jika organisasi Anda menggunakan penyedia identitas eksternal yang bekerja secara independen dari IAM Identity Center, cari tahu bagaimana Anda bisa mendapatkan kredensi sementara untuk SDK for Java untuk digunakan. Ikuti [petunjuk ini](credentials-temporary.md#credentials-temporary-from-portal) untuk menambahkan kredensi sementara ke file. `~/.aws/credentials`  
Jika penyedia identitas Anda menambahkan kredensi sementara secara otomatis ke `~/.aws/credentials` file, pastikan bahwa nama profil tersebut `[default]` sehingga Anda tidak perlu memberikan nama profil ke SDK atau. AWS CLI

# Instal Java dan alat build untuk bekerja dengan AWS SDK for Java 2.x
<a name="setup-java-buildtool"></a>

Anda memerlukan persyaratan lingkungan pengembangan Java berikut untuk bekerja dengan SDK for Java 2.x:
+ Java 8 atau yang lebih baru. [https://developers.redhat.com/products/openjdk/overview](https://developers.redhat.com/products/openjdk/overview)
+ Alat build yang kompatibel dengan Maven seperti Apache Maven, Apache Ant dengan Ivy, Gradle, atau IntelliJ.
  + [Untuk informasi tentang cara menginstal dan menggunakan Maven, lihat https://maven.apache.org/.](https://maven.apache.org/)
  + [Untuk informasi tentang cara menginstal dan menggunakan Apache Ivy, lihat https://ant.apache.org/ivy/.](https://ant.apache.org/ivy/)
  + Untuk informasi tentang cara menginstal dan menggunakan Gradle, lihat [https://gradle.org/.](https://gradle.org/)
  + Untuk informasi tentang cara menginstal dan menggunakan IntelliJ IDEA, lihat. [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)

# Siapkan proyek Apache Maven yang menggunakan AWS SDK for Java 2.x
<a name="setup-project-maven"></a>

Anda dapat menggunakan [Apache Maven](https://maven.apache.org/) untuk menyiapkan dan membangun AWS SDK for Java 2.x proyek, atau untuk [membangun SDK itu sendiri](https://github.com/aws/aws-sdk-java-v2/tree/master#building-from-source).

## Prasyarat
<a name="prerequisitesmaven"></a>

Untuk menggunakan SDK for Java 2.x dengan Maven, Anda memerlukan yang berikut ini:
+ Java *8.0 atau yang lebih baru*. Anda dapat mengunduh perangkat lunak Java SE Development Kit terbaru dari [http://www.oracle. com/technetwork/java/javase/downloads](https://www.oracle.com/java/technologies/downloads/)/. SDK for Java 2.x juga bekerja dengan [OpenJDK Amazon Corretto dan, distribusi Open](https://openjdk.org/) Java Development Kit (OpenJDK). Unduh versi OpenJDK terbaru dari. [https://openjdk.java.net/install/index.html](https://openjdk.org/install/index.html) Unduh versi Amazon Corretto 8 atau Amazon Corretto 11 terbaru [dari Corretto halaman](https://aws.amazon.com/corretto/).
+  *Apache Maven*. Jika Anda perlu menginstal Maven, buka [http://maven.apache.org/](https://maven.apache.org/) untuk mengunduh dan menginstalnya.

## Buat proyek Maven
<a name="create-maven-project"></a>

Untuk membuat proyek Maven dari baris perintah, jalankan perintah berikut dari terminal atau jendela prompt perintah. `` ``

```
mvn -B archetype:generate \
 -DarchetypeGroupId=software.amazon.awssdk \
 -DarchetypeArtifactId=archetype-lambda -Dservice=s3 -Dregion=US_WEST_2 \
 -DarchetypeVersion=2.X.X \
 -DgroupId=com.example.myapp \
 -DartifactId=myapp
```

**catatan**  
Ganti *com.example.myapp* dengan namespace paket lengkap aplikasi Anda. Juga ganti *myapp* dengan nama proyek Anda. Ini menjadi nama direktori untuk proyek Anda.  
Untuk menggunakan arketipe versi terbaru, ganti *2.X.X* dengan yang [terbaru dari](https://central.sonatype.com/artifact/software.amazon.awssdk/archetype-lambda) Maven central.

Perintah ini membuat proyek Maven menggunakan toolkit templating arketipe. Pola dasar menghasilkan perancah untuk proyek penangan fungsi. AWS Lambda Arketipe proyek ini telah dikonfigurasi sebelumnya untuk dikompilasi dengan Java SE 8 dan menyertakan ketergantungan ke versi SDK for Java 2.x yang ditentukan dengan. `-DarchetypeVersion`

Untuk informasi selengkapnya tentang membuat dan mengonfigurasi proyek Maven, lihat Panduan Memulai [Maven](https://maven.apache.org/guides/getting-started/).

## Konfigurasikan compiler Java untuk Maven
<a name="configure-maven-compiler"></a>

Jika Anda membuat proyek menggunakan pola dasar AWS Lambda proyek seperti yang dijelaskan sebelumnya, konfigurasi kompiler Java sudah dilakukan untuk Anda.

Untuk memverifikasi bahwa konfigurasi ini ada, mulailah dengan membuka `pom.xml` file dari folder proyek yang Anda buat (misalnya,`myapp`) ketika Anda menjalankan perintah sebelumnya. Lihat pada baris 11 dan 12 untuk melihat pengaturan versi kompiler Java untuk proyek Maven ini, dan penyertaan yang diperlukan dari plugin kompiler Maven pada baris 71-75.

```
<project>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven.compiler.plugin.version}</version>
      </plugin>
    </plugins>
  </build>
</project>
```

**Jika Anda membuat proyek dengan pola dasar yang berbeda atau dengan menggunakan metode lain, Anda harus memastikan bahwa plugin kompiler Maven adalah bagian dari build dan properti sumber dan targetnya disetel ke 1.8 dalam file.** `pom.xml`

Lihat cuplikan sebelumnya untuk satu cara mengonfigurasi pengaturan yang diperlukan ini.

Atau, Anda dapat mengkonfigurasi konfigurasi kompiler sebaris dengan deklarasi plugin, sebagai berikut.

```
<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
```

## Mendeklarasikan SDK sebagai dependensi
<a name="sdk-as-dependency"></a>

Untuk menggunakan AWS SDK untuk Java dalam proyek Anda, Anda perlu mendeklarasikannya sebagai dependensi dalam file proyek Anda. `pom.xml`

Jika Anda membuat proyek menggunakan pola dasar proyek seperti yang dijelaskan sebelumnya, versi terbaru SDK sudah dikonfigurasi sebagai dependensi dalam proyek Anda. 

Pola dasar menghasilkan ketergantungan artefak BOM (bill of material) untuk id grup. `software.amazon.awssdk` Dengan BOM, Anda tidak perlu menentukan versi maven untuk dependensi artefak individual yang berbagi id grup yang sama.

Jika Anda membuat proyek Maven dengan cara yang berbeda, konfigurasikan versi terbaru SDK untuk proyek Anda dengan memastikan bahwa `pom.xml` file tersebut berisi yang berikut ini.

```
<project>
  <properties>
    <aws.java.sdk.version>2.X.X</aws.java.sdk.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>bom</artifactId>
        <version>${aws.java.sdk.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>
```

**catatan**  
Ganti *2.X.X* dalam `pom.xml` file dengan [versi terbaru dari](https://central.sonatype.com/artifact/software.amazon.awssdk/bom) file AWS SDK for Java 2.x.

## Tetapkan dependensi untuk modul SDK
<a name="modules-dependencies"></a>

Sekarang setelah Anda mengonfigurasi SDK, Anda dapat menambahkan dependensi untuk satu atau beberapa AWS SDK untuk Java modul yang akan digunakan dalam proyek Anda.

Meskipun Anda dapat menentukan nomor versi untuk setiap komponen, Anda tidak perlu melakukannya karena Anda sudah mendeklarasikan versi SDK di `dependencyManagement` bagian menggunakan artefak tagihan bahan. Untuk memuat versi berbeda dari modul yang diberikan, tentukan nomor versi untuk ketergantungannya.

Jika Anda membuat proyek menggunakan pola dasar proyek seperti yang dijelaskan sebelumnya, proyek Anda sudah dikonfigurasi dengan beberapa dependensi. Ini termasuk dependensi untuk penangan AWS Lambda fungsi dan Amazon S3, sebagai berikut.

```
<project>
    <dependencies>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>s3</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>software.amazon.awssdk</groupId>
                    <artifactId>netty-nio-client</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>software.amazon.awssdk</groupId>
                    <artifactId>apache-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>url-connection-client</artifactId>
        </dependency>

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-core</artifactId>
            <version>${aws.lambda.java.version}</version>
        </dependency>
    </dependencies>
</project>
```

**catatan**  
Pada `pom.xml` contoh di atas, dependensi berasal dari s yang berbeda`groupId`. `s3`Ketergantungan berasal dari`software.amazon.awssdk`, sedangkan `aws-lambda-java-core` dependensi berasal dari. `com.amazonaws` Konfigurasi manajemen ketergantungan BOM memengaruhi artefak untuk`software.amazon.awssdk`, sehingga diperlukan versi untuk artefak. `aws-lambda-java-core`  
Untuk pengembangan *penangan fungsi Lambda* menggunakan SDK for Java 2.x`aws-lambda-java-core`, adalah dependensi yang benar. Namun, jika aplikasi Anda perlu mengelola sumber daya Lambda, menggunakan operasi seperti`listFunctions`,,, dan `deleteFunction` `invokeFunction``createFunction`, aplikasi Anda memerlukan dependensi berikut.   

```
<groupId>software.amazon.awssdk</groupId>
<artifactId>lambda</artifactId>
```

**catatan**  
`s3`Ketergantungan mengecualikan dependensi `netty-nio-client` dan `apache-client` transitif. Sebagai pengganti salah satu klien HTTP tersebut, arketipe mencakup `url-connection-client` ketergantungan, yang membantu [mengurangi latensi startup untuk fungsi](lambda-optimize-starttime.md#lambda-quick-url). AWS Lambda 

Tambahkan modul ke proyek Anda untuk Layanan AWS dan fitur yang Anda butuhkan untuk proyek Anda. Modul (dependensi) yang dikelola oleh AWS SDK untuk Java BOM terdaftar di repositori pusat [Maven](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

**catatan**  
Anda dapat melihat `pom.xml` file dari contoh kode untuk menentukan dependensi mana yang Anda butuhkan untuk proyek Anda. [Misalnya, jika Anda tertarik dengan dependensi untuk layanan DynamoDB, lihat [contoh ini dari Repositori Contoh Kode](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/dynamodb/pom.xml) di.AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) GitHub (Cari `pom.xml` file di bawah [/javav2/example\$1code/dynamodb](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/dynamodb).)

### Membangun seluruh SDK ke dalam proyek Anda
<a name="build-the-entire-sdk-into-your-project"></a>

Untuk mengoptimalkan aplikasi Anda, kami sangat menyarankan agar Anda hanya menarik komponen yang Anda butuhkan, bukan seluruh SDK. Namun, untuk membangun keseluruhan AWS SDK untuk Java ke dalam proyek Anda, nyatakan dalam `pom.xml` file Anda, sebagai berikut.

```
<project>
  <dependencies>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>aws-sdk-java</artifactId>
      <version>2.X.X</version>
    </dependency>
  </dependencies>
</project>
```

## Bangun proyek Anda
<a name="build-project"></a>

Setelah Anda mengkonfigurasi `pom.xml` file, Anda dapat menggunakan Maven untuk membangun proyek Anda.

Untuk membangun proyek Maven Anda dari baris perintah, buka jendela terminal atau command prompt, arahkan ke direktori proyek Anda (misalnya,`myapp`), masukkan atau tempel perintah berikut, lalu tekan Enter atau Return.

```
mvn package
```

Ini menciptakan satu `.jar` file (JAR) di `target` direktori (misalnya,`myapp/target`). JAR ini berisi semua modul SDK yang Anda tentukan sebagai dependensi dalam file Anda. `pom.xml`

# Siapkan proyek Gradle yang menggunakan AWS SDK for Java 2.x
<a name="setup-project-gradle"></a>

Anda dapat menggunakan [Gradle](https://gradle.org/) untuk menyiapkan dan membangun AWS SDK for Java 2.x proyek. 

Langkah awal dalam contoh berikut berasal dari [panduan Memulai Gradle](https://docs.gradle.org/current/samples/sample_building_java_applications.html) untuk versi 8.4. Jika Anda menggunakan versi yang berbeda, hasil Anda mungkin sedikit berbeda.

**Untuk membuat aplikasi Java dengan Gradle (baris perintah)**

1. Buat direktori untuk menampung proyek Anda. Dalam contoh ini, `demo` adalah nama direktori.

1. Di dalam `demo` direktori, jalankan `gradle init` perintah dan berikan nilai yang disorot dengan warna merah seperti yang ditunjukkan pada output baris perintah berikut. Untuk berjalan-jalan, kami memilih Kotlin sebagai bahasa DSL skrip build, tetapi contoh lengkap untuk Groovy juga ditampilkan di akhir topik ini.

   ```
   > gradle init
   Starting a Gradle Daemon (subsequent builds will be faster)
   
   Select type of project to generate:
   1: basic
   2: application
   3: library
   4: Gradle plugin
   Enter selection (default: basic) [1..4] 2
   
   Select implementation language:
   1: C++
   2: Groovy
   3: Java
   4: Kotlin
   5: Scala
   6: Swift
   Enter selection (default: Java) [1..6] 3
   
   Generate multiple subprojects for application? (default: no) [yes, no] no
   Select build script DSL:
   1: Kotlin
   2: Groovy
   Enter selection (default: Kotlin) [1..2] <Enter>
   
   Select test framework:
   1: JUnit 4
   2: TestNG
   3: Spock
   4: JUnit Jupiter
   Enter selection (default: JUnit Jupiter) [1..4] 4
   
   Project name (default: demo): <Enter>
   Source package (default: demo): <Enter>
   Enter target version of Java (min. 7) (default: 11): <Enter>
   Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no] <Enter>
   
   > Task :init
   To learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.4/samples/sample_building_java_applications.html
   
   BUILD SUCCESSFUL in 3m 43s
   2 actionable tasks: 2 executed
   ```

1. Setelah `init` tugas selesai, `demo` direktori berisi struktur pohon berikut. Kami melihat lebih dekat pada file build utama, `build.gradle.kts` (disorot dengan warna merah), di bagian selanjutnya.

   ```
   ├── app
   │   ├── build.gradle.kts
   │   └── src
   │       ├── main
   │       │   ├── java
   │       │   │   └── demo
   │       │   │       └── App.java
   │       │   └── resources
   │       └── test
   │           ├── java
   │           │   └── demo
   │           │       └── AppTest.java
   │           └── resources
   ├── gradle
   │   └── wrapper
   │       ├── gradle-wrapper.jar
   │       └── gradle-wrapper.properties
   ├── gradlew
   ├── gradlew.bat
   └── settings.gradle.kts
   ```

   `build.gradle.kts`File berisi konten perancah berikut.

   ```
   /*
    * This file was generated by the Gradle 'init' task.
    *
    * This generated file contains a sample Java application project to get you started.
    * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.4/userguide/building_java_projects.html in the Gradle documentation.
    */
   
   plugins {
       // Apply the application plugin to add support for building a CLI application in Java.
       application
   }
   
   repositories {
       // Use Maven Central for resolving dependencies.
       mavenCentral()
   }
   
   dependencies {
       // Use JUnit Jupiter for testing.
       testImplementation("org.junit.jupiter:junit-jupiter:5.9.3")
   
       testRuntimeOnly("org.junit.platform:junit-platform-launcher")
   
       // This dependency is used by the application.
       implementation("com.google.guava:guava:33.3.0-jre")
   }
   
   // Apply a specific Java toolchain to ease working on different environments.
   java {
       toolchain {
           languageVersion.set(JavaLanguageVersion.of(11))
       }
   }
   
   application {
       // Define the main class for the application.
       mainClass.set("demo.App")
   }
   
   tasks.named<Test>("test") {
       // Use JUnit Platform for unit tests.
       useJUnitPlatform()
   }
   ```

1. Gunakan file build Gradle scaffolded sebagai dasar untuk proyek Anda. AWS 

   1. Untuk mengelola dependensi SDK untuk project Gradle Anda, tambahkan Maven bill of materials (BOM) AWS SDK for Java 2.x untuk bagian file. `dependencies` `build.gradle.kts`

      ```
      ...
      dependencies {
          implementation(platform("software.amazon.awssdk:bom:2.27.21"))
          // With the bom declared, you specify individual SDK dependencies without a version.
       ...
      }
      ...
      ```
**catatan**  
Dalam contoh file build ini, ganti *2.27.21* dengan versi terbaru SDK for Java 2.x. Temukan versi terbaru yang tersedia di repositori [pusat Maven](https://central.sonatype.com/artifact/software.amazon.awssdk/bom/versions).

   1. Tentukan modul SDK yang dibutuhkan aplikasi Anda di `dependencies` bagian ini. Sebagai contoh, berikut ini menambahkan ketergantungan pada Amazon Simple Storage Service. 

      ```
      ...
      dependencies {    
          implementation(platform("software.amazon.awssdk:bom:2.27.21"))
          implementation("software.amazon.awssdk:s3")
       ...
      }
      ...
      ```

      Gradle secara otomatis menyelesaikan versi dependensi yang dideklarasikan dengan menggunakan informasi dari BOM.

Contoh berikut menunjukkan file build Gradle lengkap di Kotlin dan Groovy. DSLs File build berisi dependensi untuk Amazon S3, otentikasi, logging, dan pengujian. Versi sumber dan target Java adalah versi 11.

------
#### [ Kotlin DSL (build.gradle.kts) ]

```
/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java application project to get you started.
 * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.4/userguide/building_java_projects.html in the Gradle documentation.
 */

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    application
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    implementation(platform("software.amazon.awssdk:bom:2.20.56"))
    implementation("software.amazon.awssdk:s3")
    implementation("software.amazon.awssdk:sso")
    implementation("software.amazon.awssdk:ssooidc")
    implementation(platform("org.apache.logging.log4j:log4j-bom:2.20.0"))
    implementation("org.apache.logging.log4j:log4j-slf4j2-impl")
    implementation("org.apache.logging.log4j:log4j-1.2-api")
    testImplementation(platform("org.junit:junit-bom:5.10.0"))
    testImplementation("org.junit.jupiter:junit-jupiter")
}

// Apply a specific Java toolchain to ease working on different environments.
java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(11))
    }
}

application {
    // Define the main class for the application.
    mainClass.set("demo.App")
}

tasks.named<Test>("test") {
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}
```

------
#### [ Groovy DSL (build.gradle) ]

```
/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java application project to get you started.
 * For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.4/userguide/building_java_projects.html in the Gradle documentation.
 */

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    id 'application'
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    implementation platform('software.amazon.awssdk:bom:2.27.21')
    implementation 'software.amazon.awssdk:s3'
    implementation 'software.amazon.awssdk:sso'
    implementation 'software.amazon.awssdk:ssooidc'
    implementation platform('org.apache.logging.log4j:log4j-bom:2.20.0')
    implementation 'org.apache.logging.log4j:log4j-slf4j2-impl'
    implementation 'org.apache.logging.log4j:log4j-1.2-api'
    testImplementation platform('org.junit:junit-bom:5.10.0')
    testImplementation 'org.junit.jupiter:junit-jupiter'
}

// Apply a specific Java toolchain to ease working on different environments.
java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(11)
    }
}

application {
    // Define the main class for the application.
    mainClass = 'demo_groovy.App'
}

tasks.named('test') {
    // Use JUnit Platform for unit tests.
    useJUnitPlatform()
}
```

------

Untuk langkah selanjutnya, lihat panduan Memulai di situs web Gradle untuk petunjuk tentang cara [membuat dan menjalankan aplikasi Gradle](https://docs.gradle.org/current/samples/sample_building_java_applications.html#run_the_application).

# Siapkan proyek Gambar Asli GraalVM yang menggunakan AWS SDK for Java 2.x
<a name="setup-project-graalvm"></a>

Dengan versi 2.16.1 dan yang lebih baru, AWS SDK for Java 2.x menyediakan out-of-the-box dukungan untuk aplikasi GraalVM Native Image. Gunakan pola dasar `archetype-app-quickstart` Maven untuk menyiapkan proyek dengan dukungan gambar asli bawaan.

## Prasyarat
<a name="setup-graalvmnativeimage-prereq"></a>
+ Selesaikan langkah-langkah dalam [Menyiapkan AWS SDK untuk Java 2.x](setup.md).
+ Instal Gambar [Asli GraalVM](https://www.graalvm.org/reference-manual/native-image/#install-native-image).

## Buat proyek menggunakan pola dasar
<a name="setup-graalvmnativeimage-project"></a>

Untuk membuat proyek Maven dengan dukungan gambar asli bawaan, di jendela terminal atau command prompt, gunakan perintah berikut.

**catatan**  
Ganti `com.example.mynativeimageapp` dengan namespace paket lengkap aplikasi Anda. Ganti juga `mynativeimageapp` dengan nama proyek Anda. Ini menjadi nama direktori untuk proyek Anda.

```
mvn archetype:generate \
    -DarchetypeGroupId=software.amazon.awssdk \
    -DarchetypeArtifactId=archetype-app-quickstart \
    -DarchetypeVersion=2.27.21\
    -DnativeImage=true \
    -DhttpClient=apache-client \
    -Dservice=s3 \
    -DgroupId=com.example.mynativeimageapp \
    -DartifactId=mynativeimageapp \
    -DinteractiveMode=false
```

Perintah ini membuat proyek Maven dikonfigurasi dengan dependensi untuk AWS SDK untuk Java, Amazon S3, dan klien HTTP. `ApacheHttpClient` Ini juga mencakup ketergantungan untuk [plugin GraalVM Native Image Maven, sehingga Anda dapat membangun gambar asli](https://graalvm.github.io/native-build-tools/latest/index.html) menggunakan Maven.

Untuk menyertakan dependensi untuk yang berbeda Amazon Web Services, tetapkan nilai `-Dservice` parameter ke ID artefak layanan tersebut. Contohnya termasuk `dynamodb`, `comprehend`, dan `pinpoint`. Untuk daftar lengkap artefak IDs, lihat daftar dependensi terkelola untuk [software.amazon.awssdk](https://mvnrepository.com/artifact/software.amazon.awssdk/bom/latest) di Maven Central.

Untuk menggunakan klien HTTP asinkron, atur parameter ke. `-DhttpClient` `netty-nio-client` Untuk digunakan `UrlConnectionHttpClient` sebagai klien HTTP sinkron, bukan`apache-client`, atur `-DhttpClient` parameter ke`url-connection-client`.

## Membangun gambar asli
<a name="build-graalvmnativeimage-project"></a>

Setelah Anda membuat proyek, jalankan perintah berikut dari direktori proyek Anda, misalnya,`mynativeimageapp`:

```
mvn package -P native-image
```

Ini menciptakan aplikasi gambar asli di `target` direktori, misalnya,`target/mynativeimageapp`.