Apache Maven 프로젝트 설정 - AWS SDK for Java 2.x

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

Apache Maven 프로젝트 설정

Apache Maven을 사용하여 AWS SDK for Java 프로젝트를 설정 및 빌드하거나 SDK 자체 를 빌드할 수 있습니다.

사전 조건

Maven과 AWS SDK for Java 함께 를 사용하려면 다음이 필요합니다.

Maven 프로젝트 만들기

명령줄에서 Maven 프로젝트를 만들려면 터미널 또는 명령 프롬프트 창에서 다음 명령을 실행합니다.

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
참고

com.example.myapp을 애플리케이션의 전체 패키지 네임스페이스로 바꿉니다. 또한 myapp을 프로젝트 이름으로 바꿉니다. 이는 프로젝트의 디렉터리 이름이 됩니다.

최신 버전의 아키타입을 사용하려면 를 바꿉니다.2.X.X Maven 중앙 의 최신 를 사용합니다.

이 명령은 아키타입 템플릿 툴킷을 사용하여 Maven 프로젝트를 만듭니다. 아키타입은 AWS Lambda 함수 핸들러 프로젝트 에 대한 스캐폴드를 생성합니다. 이 프로젝트 아키타입은 Java SE 8로 컴파일하도록 사전 구성되며 에 지정된 Java 2.xSDK용 의 버전에 대한 종속성을 포함합니다-DarchetypeVersion.

Maven 프로젝트 생성 및 구성에 대한 자세한 내용은 Maven 시작 안내서를 참조하십시오.

Maven에 Java 컴파일러 구성

앞서 설명한 대로 프로젝트 아키타입을 사용하여 AWS Lambda 프로젝트를 생성한 경우 Java 컴파일러의 구성이 이미 완료된 것입니다.

이러한 구성이 있는지 확인하려면, 이전 명령을 실행했을 때 만든 프로젝트 폴더(예: myapp)에서 pom.xml 파일을 엽니다. 이 Maven 프로젝트의 Java 컴파일러 버전 설정과 71~75행에 Maven 컴파일러 플러그인을 포함시키는 데 필요한 내용을 보려면 11행 및 12행을 살펴보십시오.

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

다른 아키타입이나 다른 방법을 사용하여 프로젝트를 생성하는 경우 Maven 컴파일러 플러그인이 빌드의 일부이고 해당 소스 및 대상 속성이 모두 pom.xml 파일에서 1.8로 설정되어 있는지 확인해야 합니다.

이러한 필수 설정을 구성하는 한 가지 방법에 대해서는 이전 조각을 참조하십시오.

또는 다음과 같이 플러그인 선언을 통해 컴파일러 구성 인라인을 구성할 수 있습니다.

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

를 종속성SDK으로 선언

프로젝트 AWS SDK for Java 에서 를 사용하려면 프로젝트 pom.xml 파일의 종속성으로 선언해야 합니다.

앞서 설명한 대로 프로젝트 아키타입을 사용하여 프로젝트를 생성한 경우 의 최신 버전이 SDK 이미 프로젝트의 종속성으로 구성되어 있습니다.

아키타입은 software.amazon.awssdk 그룹 ID에 대한 BOM (자재 청구서) 아티팩트 종속성을 생성합니다. 를 사용하면 동일한 그룹 ID를 공유하는 개별 아티팩트 종속성에 대한 마이븐 버전을 지정할 필요가 BOM없습니다.

다른 방식으로 Maven 프로젝트를 생성한 경우 pom.xml 파일에 다음이 포함되어 있는지 확인하여 프로젝트에 SDK 대한 최신 버전의 를 구성합니다.

<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>
참고

Replace 2.X.X 의 최신 버전이 있는 pom.xml 파일에서. AWS SDK for Java 2.x

SDK 모듈의 종속성 설정

이제 를 구성했으므로 프로젝트에서 사용할 하나 이상의 AWS SDK for Java 모듈에 대한 종속성을 추가할 SDK수 있습니다.

각 구성 요소에 대한 버전 번호를 지정할 수 있지만 재료표 아티팩트를 사용하여 dependencyManagement 섹션에서 SDK 버전을 이미 선언했기 때문에 할 필요가 없습니다. 지정된 모듈의 다른 버전을 로드하려면 해당 종속성에 버전 번호를 지정합니다.

앞에서 설명한 대로 프로젝트 아키타입를 사용하여 프로젝트를 만들었다면 프로젝트는 이미 여러 종속성으로 구성되어 있습니다. 여기에는 다음과 같이 AWS Lambda 함수 핸들러와 Amazon S3에 대한 종속성이 포함됩니다.

<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>
참고

pom.xml 예시에서는 종속성이 서로 다른 groupId에 속합니다. s3 종속성은 software.amazon.awssdk에서 가져온 것이고 aws-lambda-java-core 종속성은 com.amazonaws에서 가져온 것입니다. BOM 종속성 관리 구성은 의 아티팩트에 영향을 미치software.amazon.awssdk므로 aws-lambda-java-core 아티팩트에 버전이 필요합니다.

Java 2.xSDK용 를 사용하여 Lambda 함수 핸들러를 개발하려면 aws-lambda-java-core가 올바른 종속성입니다. 하지만 listFunctions, deleteFunction, invokeFunction, createFunction 등의 작업을 사용하여 애플리케이션이 Lambda 리소스를 관리해야 하는 경우 애플리케이션에 다음과 같은 종속성이 필요합니다.

<groupId>software.amazon.awssdk</groupId> <artifactId>lambda</artifactId>
참고

s3 종속성에는 netty-nio-clientapache-client 전이적 종속성이 제외됩니다. 이러한 HTTP 클라이언트 중 하나 대신 아키타입에는 url-connection-client 종속성이 포함되어 함수 의 시작 지연 시간을 AWS Lambda 줄이는 데 도움이 됩니다.

프로젝트에 필요한 AWS 서비스 및 기능에 대한 모듈을 프로젝트에 추가합니다. 에서 AWS SDK for Java 관리하는 모듈(종속성)은 Maven 중앙 리포지토리 에 나열BOM됩니다.

참고

코드 예제에서 pom.xml 파일을 살펴보고 프로젝트에 필요한 종속성을 결정할 수 있습니다. 예를 들어 DynamoDB 서비스의 종속성에 관심이 있는 경우 의 AWS 코드 예제 리포지토리에서 이 예제를 참조하세요 GitHub. (/javav2/example_code/dynamodb에서 pom.xml 파일을 찾아보세요.)

SDK 프로젝트에 전체 빌드

애플리케이션을 최적화하려면 전체 대신 필요한 구성 요소만 가져오는 것이 좋습니다SDK. 그러나 전체 AWS SDK for Java 를 프로젝트에 빌드하려면 다음과 같이 pom.xml 파일에 선언합니다.

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

프로젝트 빌드

pom.xml 파일을 구성한 후에는 Maven을 사용하여 프로젝트를 빌드할 수 있습니다.

명령줄에서 Maven 프로젝트를 빌드하려면 터미널 또는 명령 프롬프트 창을 열고 프로젝트 디렉터리(예: myapp)로 이동하여 다음 명령을 입력하거나 붙여넣은 다음 Enter 또는 Return을 누릅니다.

mvn package

이렇게 하면 target 디렉터리(예: JAR)에 단일 .jar 파일()이 생성됩니다myapp/target. 여기에는 pom.xml 파일에서 종속성으로 지정한 모든 SDK 모듈이 JAR 포함됩니다.