

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하는 Gradle 프로젝트 설정 AWS SDK for Java 2.x
<a name="setup-project-gradle"></a>

[Gradle](https://gradle.org/)을 사용하여 AWS SDK for Java 2.x 프로젝트를 설정하고 빌드할 수 있습니다.

다음 예시의 초기 단계는 [Gradle 버전 8.4용 시작 가이드](https://docs.gradle.org/current/samples/sample_building_java_applications.html)에서 가져온 것입니다. 다른 버전을 사용하는 경우 결과가 약간 다를 수 있습니다.

**Gradle을 사용하여 Java 애플리케이션을 만들려면(명령줄)**

1. 프로젝트를 보관할 디렉터리를 생성합니다. 이 예에서 디렉터리 이름은 `demo`입니다.

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

1. `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: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. 스캐폴딩된 Gradle 빌드 파일을 AWS 프로젝트의 기반으로 사용합니다.

   1. Gradle 프로젝트의 SDK 종속성을 관리하려면 `build.gradle.kts` 파일의 `dependencies` 섹션에에 대한 Maven 재료표(BOM) AWS SDK for Java 2.x 를 추가합니다.

      ```
      ...
      dependencies {
          implementation(platform("software.amazon.awssdk:bom:2.27.21"))
          // With the bom declared, you specify individual SDK dependencies without a version.
       ...
      }
      ...
      ```
**참고**  
이 예제 빌드 파일에서 *2.27.21*을 최신 버전의 Java 2.x용 SDK로 바꿉니다. [Maven 중앙 리포지토리](https://central.sonatype.com/artifact/software.amazon.awssdk/bom/versions)에서 최신 버전을 찾아보세요.

   1. `dependencies` 섹션에서 애플리케이션에 필요한 SDK 모듈을 지정하세요. 예를 들어, 다음은 Amazon Simple Storage Service에 대한 종속성을 추가합니다.

      ```
      ...
      dependencies {    
          implementation(platform("software.amazon.awssdk:bom:2.27.21"))
          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.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()
}
```

------

다음 단계는 Gradle 웹사이트의 시작 가이드를 참고하여 [Gradle 애플리케이션을 빌드하고 실행](https://docs.gradle.org/current/samples/sample_building_java_applications.html#run_the_application)하는 방법에 대한 지침을 확인하세요.