

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS SDK für Java 2.x einrichten
<a name="setup"></a>

Dieser Abschnitt enthält Informationen darüber, wie Sie Ihre Entwicklungsumgebung und Projekte für die Verwendung von einrichten AWS SDK for Java 2.x.

## Übersicht über die Einrichtung
<a name="setup-overview"></a>

Für die erfolgreiche Entwicklung von Anwendungen, die AWS-Services über das zugreifen AWS SDK für Java, sind die folgenden Bedingungen erforderlich:
+ Das Java SDK muss Zugriff auf Anmeldeinformationen haben, um [Anfragen in Ihrem Namen zu authentifizieren](get-started-auth.md#setup-auth).
+ Die für das SDK konfigurierten [Berechtigungen der IAM-Rolle](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) müssen den Zugriff auf die Berechtigungen ermöglichen AWS-Services , die Ihre Anwendung benötigt. Die mit der **PowerUserAccess** AWS verwalteten Richtlinie verbundenen Berechtigungen reichen für die meisten Entwicklungsanforderungen aus.
+ Eine Entwicklungsumgebung mit den folgenden Elementen:
  + [Gemeinsam genutzte Konfigurationsdateien](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html), die auf mindestens eine der folgenden Arten eingerichtet wurden:
    + Die `config` Datei enthält [Single-Sign-On-Einstellungen für IAM Identity Center](get-started-auth.md#setup-credentials), sodass das SDK Anmeldeinformationen abrufen AWS kann.
    + Die `credentials` Datei enthält temporäre Anmeldeinformationen.
  + Eine [Installation von Java 8](setup-java-buildtool.md) oder höher.
  + Ein [Tool zur Build-Automatisierung](setup-java-buildtool.md) wie [Maven](https://maven.apache.org/download.cgi) oder [Gradle](https://gradle.org/install/).
  + Ein Texteditor für die Arbeit mit Code.
  + (Optional, aber empfohlen) Eine IDE (integrierte Entwicklungsumgebung) wie [IntelliJ IDEA](https://www.jetbrains.com/idea/download/#section=windows), [Eclipse](https://www.eclipse.org/ide/) oder. [NetBeans](https://netbeans.apache.org/front/main/download/index.html)

    Wenn Sie IntelliJ IDEA verwenden, können Sie die [AWS Toolkit for IntelliJ IDEA](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html) auch hinzufügen, um sie AWS-Services direkt in die IDE zu integrieren, um die Entwicklung zu optimieren.
+ Eine aktive AWS Access-Portalsitzung, wenn Sie bereit sind, Ihre Anwendung auszuführen. Sie verwenden den AWS Command Line Interface , um den [Anmeldevorgang für das AWS Zugangsportal von IAM Identity Center zu initiieren](get-started-auth.md#setup-login-sso).

**Wichtig**  
Bei den Anweisungen in diesem Abschnitt zur Einrichtung wird davon ausgegangen, dass Sie oder Ihre Organisation IAM Identity Center verwenden. Wenn Ihre Organisation einen externen Identitätsanbieter verwendet, der unabhängig von IAM Identity Center arbeitet, finden Sie heraus, wie Sie temporäre Anmeldeinformationen für das SDK for Java erhalten können. Folgen Sie [diesen Anweisungen](credentials-temporary.md#credentials-temporary-from-portal), um der `~/.aws/credentials` Datei temporäre Anmeldeinformationen hinzuzufügen.  
Wenn Ihr Identitätsanbieter der `~/.aws/credentials` Datei automatisch temporäre Anmeldeinformationen hinzufügt, stellen Sie sicher, dass der Profilname `[default]` so lautet, dass Sie dem SDK keinen Profilnamen angeben müssen oder AWS CLI.

# Installieren Sie Java und ein Build-Tool, um mit dem zu arbeiten AWS SDK for Java 2.x
<a name="setup-java-buildtool"></a>

Sie benötigen die folgenden Anforderungen an die Java-Entwicklungsumgebung, um mit SDK for Java 2.x zu arbeiten:
+ Java 8 oder höher. [Das AWS SDK für Java funktioniert mit dem [Oracle Java SE Development Kit](https://www.oracle.com/java/technologies/downloads/) und mit Distributionen von Open Java Development Kit (OpenJDK) wie [Amazon Corretto](https://aws.amazon.com/corretto/)[Red Hat OpenJDK](https://developers.redhat.com/products/openjdk/overview) und Adoptium.](https://adoptium.net/)
+ Ein Maven-kompatibles Build-Tool wie Apache Maven, Apache Ant mit Ivy, Gradle oder IntelliJ.
  + [Informationen zur Installation und Verwendung von Maven finden Sie unter https://maven.apache.org/.](https://maven.apache.org/)
  + [Informationen zur Installation und Verwendung von Apache Ivy finden Sie unter https://ant.apache.org/ivy/.](https://ant.apache.org/ivy/)
  + [Informationen zur Installation und Verwendung von Gradle finden Sie unter https://gradle.org/.](https://gradle.org/)
  + Informationen zur Installation und Verwendung von IntelliJ IDEA finden Sie unter. [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)

# Richten Sie ein Apache Maven-Projekt ein, das AWS SDK for Java 2.x
<a name="setup-project-maven"></a>

Sie können [Apache Maven](https://maven.apache.org/) verwenden, um AWS SDK for Java 2.x Projekte einzurichten und zu erstellen oder um [das SDK selbst zu erstellen](https://github.com/aws/aws-sdk-java-v2/tree/master#building-from-source).

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

Um das SDK for Java 2.x mit Maven zu verwenden, benötigen Sie Folgendes:
+ Java *8.0 oder höher* [Sie können die neueste Java SE Development Kit-Software von http://www.oracle herunterladen. com/technetwork/java/javase/downloads](https://www.oracle.com/java/technologies/downloads/)/. Das SDK for Java 2.x funktioniert auch mit [OpenJDK](https://openjdk.org/) und Amazon Corretto, einer Distribution des Open Java Development Kit (OpenJDK). Laden Sie die neueste OpenJDK-Version von herunter. [https://openjdk.java.net/install/index.html](https://openjdk.org/install/index.html) Laden Sie die neueste Version Amazon Corretto 8 oder Amazon Corretto 11 von [der Corretto](https://aws.amazon.com/corretto/) Seite herunter.
+  *Apache Maven*. Wenn Sie Maven installieren müssen, navigieren Sie zu [http://maven.apache.org/](https://maven.apache.org/), um das Tool herunterzuladen und zu installieren.

## Erstellen eines Maven-Projekts
<a name="create-maven-project"></a>

Um ein Maven-Projekt von der Befehlszeile aus zu erstellen, führen Sie den folgenden Befehl in einem Terminal- oder Befehlszeilenfenster `` `` aus.

```
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
```

**Anmerkung**  
Ersetzen Sie *com.example.myapp* durch den vollständigen Paket-Namespace Ihrer Anwendung. Ersetzen Sie auch *myapp* durch Ihren Projektnamen. Dies wird der Name des Verzeichnisses für Ihr Projekt.  
Um die neueste Version des Archetyps zu verwenden, *2.X.X* ersetzen Sie ihn durch die [neueste Version von](https://central.sonatype.com/artifact/software.amazon.awssdk/archetype-lambda) Maven Central.

Dieser Befehl erstellt ein Maven-Projekt mit dem Archetype Templating Toolkit. Der Archetyp generiert das Gerüst für ein Function-Handler-Projekt. AWS Lambda Dieser Projekt-Archetyp ist für die Kompilierung mit Java SE 8 vorkonfiguriert und beinhaltet eine Abhängigkeit von der Version des SDK for Java 2.x, die mit spezifiziert ist. `-DarchetypeVersion`

Weitere Informationen zum Erstellen und Konfigurieren von Maven-Projekten finden Sie im [Maven-Handbuch „Erste Schritte“](https://maven.apache.org/guides/getting-started/).

## Konfigurieren des Java-Compilers für Maven
<a name="configure-maven-compiler"></a>

Wenn Sie Ihr Projekt mit dem AWS Lambda Projekt-Archetyp wie zuvor beschrieben erstellt haben, ist die Konfiguration des Java-Compilers bereits für Sie erledigt.

Um zu überprüfen, ob diese Konfiguration vorhanden ist, öffnen Sie zunächst die Datei `pom.xml` aus dem Projektordner, den Sie erstellt haben (z. B. `myapp`), als Sie den vorherigen Befehl ausgeführt haben. In den Zeilen 11 und 12 sehen Sie die Einstellung der Java-Compiler-Version für dieses Maven-Projekt und in den Zeilen 71 bis 75 die erforderliche Einbindung des Maven-Compiler-Plug-ins.

```
<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>
```

**Wenn Sie Ihr Projekt mit einem anderen Archetyp oder mit einer anderen Methode erstellen, müssen Sie sicherstellen, dass das Maven-Compiler-Plugin Teil des Builds ist und dass seine Quell- und Zieleigenschaften in der Datei beide auf 1.8 gesetzt sind.** `pom.xml`

Eine Möglichkeit, diese erforderlichen Einstellungen zu konfigurieren, finden Sie im vorherigen Snippet.

Alternativ können Sie die Compiler-Konfiguration inline wie folgt mit der Plug-in-Deklaration konfigurieren.

```
<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>
```

## Deklarieren des SDK als Abhängigkeit
<a name="sdk-as-dependency"></a>

Um das AWS SDK für Java in Ihrem Projekt zu verwenden, müssen Sie es als Abhängigkeit in der Datei Ihres Projekts deklarieren. `pom.xml`

Wenn Sie Ihr Projekt mit dem Projekt-Archetyp wie zuvor beschrieben erstellt haben, ist die neueste Version des SDK bereits als Abhängigkeit in Ihrem Projekt konfiguriert. 

Der Archetyp generiert eine Stücklisten-Artefaktabhängigkeit (Stückliste) für die Gruppen-ID. `software.amazon.awssdk` Bei einer Stückliste müssen Sie die Maven-Version nicht für einzelne Artefaktabhängigkeiten angeben, die dieselbe Gruppen-ID haben.

Wenn Sie Ihr Maven-Projekt auf andere Weise erstellt haben, konfigurieren Sie die neueste Version des SDK für Ihr Projekt, indem Sie sicherstellen, dass die Datei `pom.xml` Folgendes enthält.

```
<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>
```

**Anmerkung**  
Ersetzen Sie *2.X.X* die `pom.xml` Datei durch die [neueste Version von](https://central.sonatype.com/artifact/software.amazon.awssdk/bom). AWS SDK for Java 2.x

## Festlegen von Abhängigkeiten für SDK-Module
<a name="modules-dependencies"></a>

Nachdem Sie das SDK konfiguriert haben, können Sie Abhängigkeiten für eines oder mehrere der AWS SDK für Java Module hinzufügen, die Sie in Ihrem Projekt verwenden möchten.

Sie können zwar die Versionsnummer für jede Komponente angeben, müssen dies jedoch nicht, da Sie die SDK-Version bereits in dem `dependencyManagement` Abschnitt mit dem Stücklisten-Artefakt deklariert haben. Um eine andere Version eines bestimmten Moduls zu laden, geben Sie eine Versionsnummer für dessen Abhängigkeit an.

Wenn Sie Ihr Projekt mit dem Projekt-Archetyp wie zuvor beschrieben erstellt haben, ist Ihr Projekt bereits mit mehreren Abhängigkeiten konfiguriert. Dazu gehören Abhängigkeiten für AWS Lambda Funktionshandler und Amazon S3, wie folgt.

```
<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>
```

**Anmerkung**  
Im obigen `pom.xml` Beispiel stammen die Abhängigkeiten von verschiedenen s. `groupId` Die `s3` Abhängigkeit ist von`software.amazon.awssdk`, wohingegen die `aws-lambda-java-core` Abhängigkeit von ist`com.amazonaws`. Die Konfiguration der STL-Abhängigkeitsverwaltung wirkt sich auf Artefakte für aus`software.amazon.awssdk`, sodass für das `aws-lambda-java-core` Artefakt eine Version erforderlich ist.  
Für die Entwicklung von *Lambda-Funktionshandlern*, die das SDK for Java 2.x verwenden, `aws-lambda-java-core` ist dies die richtige Abhängigkeit. Wenn Ihre Anwendung jedoch Lambda-Ressourcen mithilfe von Operationen wie,`listFunctions`, und `createFunction` verwalten muss `deleteFunction``invokeFunction`, erfordert Ihre Anwendung die folgende Abhängigkeit.   

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

**Anmerkung**  
Die `s3` Abhängigkeit schließt die `netty-nio-client` und die `apache-client` transitiven Abhängigkeiten aus. Anstelle eines dieser HTTP-Clients beinhaltet der Archetyp die `url-connection-client` Abhängigkeit, wodurch die [Startlatenz für Funktionen reduziert wird](lambda-optimize-starttime.md#lambda-quick-url). AWS Lambda 

Fügen Sie Ihrem Projekt die Module für die Funktionen hinzu, die AWS-Service Sie für Ihr Projekt benötigen. Die Module (Abhängigkeiten), die von der AWS SDK für Java BOM verwaltet werden, sind im [zentralen Maven-Repository](https://central.sonatype.com/artifact/software.amazon.awssdk/bom) aufgeführt.

**Anmerkung**  
Sie können die Datei `pom.xml` anhand eines Codebeispiels betrachten, um zu ermitteln, welche Abhängigkeiten Sie für Ihr Projekt benötigen. Wenn Sie beispielsweise an den Abhängigkeiten für den DynamoDB-Dienst interessiert sind, sehen Sie sich [dieses Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/dynamodb/pom.xml) aus dem [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) unter an. GitHub (Suchen Sie unter [/javav2/example\$1code/dynamodb](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/dynamodb) nach der `pom.xml` Datei.)

### Aufnehmen des gesamten SDK in Ihr Projekt
<a name="build-the-entire-sdk-into-your-project"></a>

Zur Optimierung Ihrer Anwendung empfehlen wir dringend, nur die benötigten Komponenten abzurufen, und nicht das gesamte SDK. Um jedoch die gesamte Datei AWS SDK für Java in Ihr Projekt einzubauen, deklarieren Sie sie wie folgt in Ihrer Datei. `pom.xml`

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

## Erstellen Ihres Projekts
<a name="build-project"></a>

Nachdem Sie die Datei `pom.xml` konfiguriert haben, können Sie Ihr Projekt mithilfe von Maven erstellen.

Um ein Maven-Projekt über die Befehlszeile zu erstellen, öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster, navigieren Sie zu Ihrem Projektverzeichnis (z. B. `myapp`), geben oder fügen Sie den folgenden Befehl ein und drücken Sie dann die Eingabe.

```
mvn package
```

Dadurch wird eine einzelne `.jar`-Datei (JAR) im Verzeichnis `target` erstellt (z. B. `myapp/target`). Diese JAR enthält alle SDK-Module, die Sie als Abhängigkeiten in Ihrer Datei `pom.xml` angegeben haben.

# Richten Sie ein Gradle-Projekt ein, das AWS SDK for Java 2.x
<a name="setup-project-gradle"></a>

Sie können [Gradle](https://gradle.org/) verwenden, um Projekte einzurichten und zu erstellen AWS SDK for Java 2.x . 

Die ersten Schritte im folgenden Beispiel stammen aus dem [Handbuch Erste Schritte von Gradle](https://docs.gradle.org/current/samples/sample_building_java_applications.html) für Version 8.4. Wenn Sie eine andere Version verwenden, können Ihre Ergebnisse geringfügig abweichen.

**Um eine Java-Anwendung mit Gradle (Befehlszeile) zu erstellen**

1. Erstellen Sie ein Verzeichnis für Ihr Projekt. In diesem Beispiel `demo` ist das der Verzeichnisname.

1. Führen Sie innerhalb des `demo` Verzeichnisses den `gradle init` Befehl aus und geben Sie die rot markierten Werte ein, wie in der folgenden Befehlszeilenausgabe gezeigt. Für die Einführung wählen wir Kotlin als DSL-Sprache für das Build-Skript. Ein vollständiges Beispiel für Groovy finden Sie am Ende dieses Themas.

   ```
   > 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. Nach Abschluss der `init` Aufgabe enthält das `demo` Verzeichnis die folgende Baumstruktur. Im nächsten Abschnitt werfen wir einen genaueren Blick auf die Haupt-Build-Datei `build.gradle.kts` (rot hervorgehoben).

   ```
   ├── 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
   ```

   Die `build.gradle.kts` Datei enthält den folgenden gerüsteten Inhalt.

   ```
   /*
    * 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. Verwenden Sie die Gradle-Build-Datei mit Gerüsten als Grundlage für Ihr Projekt. AWS 

   1. Um die SDK-Abhängigkeiten für Ihr Gradle-Projekt zu verwalten, fügen Sie dem Abschnitt der Datei die Maven-Stückliste (BOM) hinzu. AWS SDK for Java 2.x `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.
       ...
      }
      ...
      ```
**Anmerkung**  
Ersetzen Sie in dieser Beispiel-Builddatei *2.27.21* durch die neueste Version des SDK for Java 2.x. Finden Sie die neueste Version, die im zentralen [Maven-Repository](https://central.sonatype.com/artifact/software.amazon.awssdk/bom/versions) verfügbar ist.

   1. Geben Sie im `dependencies` Abschnitt die SDK-Module an, die Ihre Anwendung benötigt. Im Folgenden wird beispielsweise eine Abhängigkeit von Amazon Simple Storage Service hinzugefügt. 

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

      Gradle löst automatisch die richtige Version der deklarierten Abhängigkeiten auf, indem es die Informationen aus der Stückliste verwendet.

Die folgenden Beispiele zeigen komplette Gradle-Build-Dateien sowohl in Kotlin als auch in Groovy. DSLs Die Build-Datei enthält Abhängigkeiten für Amazon S3, Authentifizierung, Protokollierung und Tests. Die Quell- und Zielversion von Java ist Version 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()
}
```

------

Die nächsten Schritte finden Sie im Handbuch Erste Schritte auf der Gradle-Website mit Anweisungen zum [Erstellen und Ausführen einer Gradle-Anwendung](https://docs.gradle.org/current/samples/sample_building_java_applications.html#run_the_application).

# Richten Sie ein GraalVM Native Image-Projekt ein, das den AWS SDK for Java 2.x
<a name="setup-project-graalvm"></a>

Mit den Versionen 2.16.1 und höher AWS SDK for Java 2.x bietet das out-of-the-box Unterstützung für GraalVM Native Image-Anwendungen. Verwenden Sie den `archetype-app-quickstart` Maven-Archetyp, um ein Projekt mit integrierter Native-Image-Unterstützung einzurichten.

## Voraussetzungen
<a name="setup-graalvmnativeimage-prereq"></a>
+ Führen Sie die Schritte unter 2.x [einrichten aus. AWS SDK für Java](setup.md)
+ Installieren Sie [GraalVM Native Image](https://www.graalvm.org/reference-manual/native-image/#install-native-image).

## Erstellen Sie ein Projekt mit dem Archetyp
<a name="setup-graalvmnativeimage-project"></a>

Verwenden Sie den folgenden Befehl, um ein Maven-Projekt mit integrierter systemeigener Image-Unterstützung in einem Terminal- oder Befehlszeilenfenster zu erstellen.

**Anmerkung**  
`com.example.mynativeimageapp`Ersetzen Sie es durch den vollständigen Paket-Namespace Ihrer Anwendung. Ersetzen Sie es auch `mynativeimageapp` durch Ihren Projektnamen. Dies wird der Name des Verzeichnisses für Ihr Projekt.

```
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
```

Dieser Befehl erstellt ein Maven-Projekt, das mit Abhängigkeiten für den AWS SDK für Java Amazon S3, und den `ApacheHttpClient` HTTP-Client konfiguriert ist. Es enthält auch eine Abhängigkeit für das [GraalVM Native Image Maven-Plugin, sodass Sie mit Maven](https://graalvm.github.io/native-build-tools/latest/index.html) native Images erstellen können.

Um Abhängigkeiten für einen anderen Dienst einzubeziehen Amazon Web Services, setzen Sie den Wert des `-Dservice` Parameters auf die Artefakt-ID dieses Dienstes. Beispiele hierfür sind `dynamodb`, `comprehend` und `pinpoint`. Eine vollständige Liste der IDs Artefakte finden Sie in der Liste der verwalteten Abhängigkeiten für [software.amazon.awssdk](https://mvnrepository.com/artifact/software.amazon.awssdk/bom/latest) auf Maven Central.

Um einen asynchronen HTTP-Client zu verwenden, setzen Sie den Parameter auf. `-DhttpClient` `netty-nio-client` Um ihn stattdessen `UrlConnectionHttpClient` als synchronen HTTP-Client zu verwenden`apache-client`, setzen Sie den `-DhttpClient` Parameter auf. `url-connection-client`

## Erstellen Sie ein systemeigenes Image
<a name="build-graalvmnativeimage-project"></a>

Nachdem Sie das Projekt erstellt haben, führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, z. B.`mynativeimageapp`:

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

Dadurch wird eine native Image-Anwendung in dem `target` Verzeichnis erstellt, `target/mynativeimageapp` z. B.