设置 Gradle 项目 - Amazon SDK for Java 2.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

设置 Gradle 项目

您可以使用 Gradle 来设置和构建Amazon SDK for Java 项目。

以下示例中的初始步骤来自 Gradle 8.4 版的入门指南。如果您使用的是其他版本,结果可能会略有不同。

使用 Gradle 创建 Java 应用程序(命令行)
  1. 创建一个用于存放项目的目录。在此示例中,该目录名为 demo

  2. demo 目录中,执行 gradle init 命令并提供以红色突出显示的值,如以下命令行输出所示。在演练中,我们选择 Kotlin 作为构建脚本 DSL 语言,但本主题末尾还提供了使用 Groovy 的完整示例。

    > 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
  3. init 任务完成后,demo 目录包含以下树结构。在下个部分中,我们将仔细研究主构建文件 build.gradle.kts(以红色突出显示)。

    ├── 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 文件包含以下支架式内容。

    /* * 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:32.1.1-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() }
  4. 使用支架式 Gradle 构建文件作为 Amazon 项目的基础。

    1. 要管理 Gradle 项目的 SDK 依赖项,请将Amazon SDK for Java 2.x 的 Maven 材料清单 (BOM) 添加到 build.gradle.kts 文件中的 dependencies 部分。

      ... dependencies { implementation(platform("software.amazon.awssdk:bom:2.21.1")) // With the bom declared, you specify individual SDK dependencies without a version. ... } ...
      注意

      在此示例构建文件中,将 2.21.1 替换为适用于 Java 的 SDK 2.x 的最新版本。在 Maven Central 存储库中查找可用的最新版本。

    2. dependencies 部分中指定您的应用程序需要的 SDK 模块。例如,以下内容添加了对 Amazon Simple Storage Service 的依赖项。

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

      Gradle 会自动使用 BOM 中的信息来解析所声明依赖项的正确版本。

以下示例显示了使用 Kotlin 和 Groovy DSL 的完整 Gradle 构建文件。构建文件包含 Amazon S3、身份验证、日志和测试的依赖项。Java 的源版本和目标版本均为版本 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.21.1') 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() }

有关后续步骤,请参阅 Gradle 网站上的入门指南,了解有关如何构建和运行 Gradle 应用程序的说明。