

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

# 프로젝트 빌드 파일 생성
<a name="setup-create-project-file"></a>

Single Sign-On 액세스 및 개발 환경을 구성한 후 원하는 빌드 도구를 사용하여 Kotlin 프로젝트를 생성합니다. 빌드 파일에서 애플리케이션이 액세스해야 AWS 서비스 하는에 대한 종속성을 지정합니다.

가능한 모든 Maven 아티팩트 이름 목록을 보려면 [API 참조 설명서를](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/index.html) 참조하세요. SDK의 최신 버전을 찾으려면 [ GitHub에서 최신 릴리스를](https://github.com/awslabs/aws-sdk-kotlin/releases/latest) 확인하세요.

다음 샘플 빌드 파일은 7로 프로젝트 코딩을 시작하는 데 필요한 요소를 제공합니다 AWS 서비스.

------
#### [ Gradle ]

는 종속성 이름을 검색하고 버전 번호를 여러 아티팩트에서 동기화된 상태로 유지하는 데 도움이 되는 [Gradle 버전 카탈로그](https://docs.gradle.org/current/userguide/version_catalogs.html) 및 BOM(Bill of Material)을 AWS SDK for Kotlin 게시합니다.

버전 카탈로그는 버전 8 이전 Gradle의 미리 보기 기능입니다. 사용하는 Gradle 버전에 따라 [특성 미리 보기 API](https://docs.gradle.org/current/userguide/feature_lifecycle.html#feature_preview)를 통해 옵트인해야 할 수 있습니다.

**Gradle 버전 카탈로그를 사용하려면**

1. `settings.gradle.kts` 파일에서 `versionCatalogs` 블록 내에 `dependencyResolutionManagement` 블록을 추가합니다.

   다음 예제 파일은 AWS SDK for Kotlin 버전 카탈로그를 구성합니다. {{X.Y.Z}} 링크로 이동하여 사용 가능한 최신 버전을 볼 수 있습니다.

   ```
   plugins {
       id("org.gradle.toolchains.foojay-resolver-convention") version "[https://plugins.gradle.org/plugin/org.gradle.toolchains.foojay-resolver-convention](https://plugins.gradle.org/plugin/org.gradle.toolchains.foojay-resolver-convention)"
   }
   rootProject.name = "your-project-name"
   
   dependencyResolutionManagement {
       repositories {
           mavenCentral()
       }
   
       versionCatalogs {
           create("awssdk") {
               from("aws.sdk.kotlin:version-catalog:[https://github.com/awslabs/aws-sdk-kotlin/releases/latest](https://github.com/awslabs/aws-sdk-kotlin/releases/latest)")
           }
       }
   }
   ```

1. 버전 카탈로그에서 사용할 수 있는 유형 안전 식별자`build.gradle.kts`를 사용하여에서 종속성을 선언합니다.

   다음 예제 파일은 7개의에 대한 종속성을 선언합니다 AWS 서비스.

   ```
   plugins {
       kotlin("jvm") version "{{[X.Y.Z](https://plugins.gradle.org/plugin/org.jetbrains.kotlin.jvm)}}"
       application
   }
   
   group = "org.example"
   version = "1.0-SNAPSHOT"
   
   repositories {
       mavenCentral()
   }
   
   dependencies {
       implementation(platform(awssdk.bom))
       implementation(platform("org.apache.logging.log4j:log4j-bom:[https://search.maven.org/#search|gav|1|g:org.apache.logging.log4j%20AND%20a:log4j-bom](https://search.maven.org/#search|gav|1|g:org.apache.logging.log4j%20AND%20a:log4j-bom)"))
   
       implementation(awssdk.services.s3)
       implementation(awssdk.services.dynamodb)
       implementation(awssdk.services.iam)
       implementation(awssdk.services.cloudwatch)
       implementation(awssdk.services.cognitoidentityprovider)
       implementation(awssdk.services.sns)
       implementation(awssdk.services.pinpoint)
       implementation("org.apache.logging.log4j:log4j-slf4j2-impl")
   
       // Test dependency.
       testImplementation(kotlin("test"))
   }
   
   tasks.test {
       useJUnitPlatform()
   }
   
   java {
       toolchain {
           languageVersion = JavaLanguageVersion.of({{X*}})
       }
   }
   
   application {
       mainClass = "org.example.AppKt"
   }
   ```

   \*Java 버전, 예: `17` 또는 `21`.

------
#### [ Maven ]

다음 예제 `pom.xml` 파일에는 일곱 개의에 대한 종속성이 있습니다 AWS 서비스. {{X.Y.Z}} 링크로 이동하여 사용 가능한 최신 버전을 볼 수 있습니다.

```
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>setup</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <aws.sdk.kotlin.version>[https://github.com/awslabs/aws-sdk-kotlin/releases/latest](https://github.com/awslabs/aws-sdk-kotlin/releases/latest)</aws.sdk.kotlin.version>
        <kotlin.version>{{[X.Y.Z](https://kotlinlang.org/docs/releases.html#release-details)}}</kotlin.version>
        <log4j.version>[https://search.maven.org/#search|gav|1|g:org.apache.logging.log4j%20AND%20a:log4j-bom](https://search.maven.org/#search|gav|1|g:org.apache.logging.log4j%20AND%20a:log4j-bom)</log4j.version>
        <junit.jupiter.version>[https://search.maven.org/#search|gav|1|g:org.junit.jupiter%20AND%20a:junit-jupiter](https://search.maven.org/#search|gav|1|g:org.junit.jupiter%20AND%20a:junit-jupiter)</junit.jupiter.version>
        <jvm.version>{{X}}*</jvm.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>aws.sdk.kotlin</groupId>
                <artifactId>bom</artifactId>
                <version>${aws.sdk.kotlin.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-bom</artifactId>
                <version>${log4j.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>aws.sdk.kotlin</groupId>
            <artifactId>s3-jvm</artifactId>
        </dependency>
        <dependency>
            <groupId>aws.sdk.kotlin</groupId>
            <artifactId>dynamodb-jvm</artifactId>
        </dependency>
        <dependency>
            <groupId>aws.sdk.kotlin</groupId>
            <artifactId>iam-jvm</artifactId>
        </dependency>
        <dependency>
            <groupId>aws.sdk.kotlin</groupId>
            <artifactId>cloudwatch-jvm</artifactId>
        </dependency>
        <dependency>
            <groupId>aws.sdk.kotlin</groupId>
            <artifactId>cognitoidentityprovider-jvm</artifactId>
        </dependency>
        <dependency>
            <groupId>aws.sdk.kotlin</groupId>
            <artifactId>sns-jvm</artifactId>
        </dependency>
        <dependency>
            <groupId>aws.sdk.kotlin</groupId>
            <artifactId>pinpoint-jvm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
        </dependency>

        <!-- Test dependencies -->
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-test-junit</artifactId>
            <version>${kotlin.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>${junit.jupiter.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src/main/kotlin</sourceDirectory>
        <testSourceDirectory>src/test/kotlin</testSourceDirectory>

        <plugins>
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jvmTarget>${jvm.version}</jvmTarget>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
```

\*Java 버전, 예: `17` 또는 `21`.

------