Apache Maven プロジェクトを設定する - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Apache Maven プロジェクトを設定する

Apache Maven を使用して、 AWS SDK for Java プロジェクトを設定および構築したり、それSDK自体を構築したりできます。

前提条件

Maven AWS SDK for Java で を使用するには、以下が必要です。

  • Java 8.0 以降。最新の Java SE Development Kit ソフトウェアは http://www.oracle.com/technetwork/java/javase/downloads/ からダウンロードできます。は Amazon Corretto、OpenJDK Java Development Kit (Open ) のディストリビューションである Open および AWS SDK for Java とも連携しますJDK。から最新の OpenJDK バージョンをダウンロードしますhttps://openjdk.java.net/install/index.html。ページから最新の Amazon Corretto 8 または Amazon Corretto 11 バージョンをダウンロードします。 Corretto

  • Apache Maven。Maven をインストールする必要がある場合は、http://maven.apache.org/ にアクセスしてダウンロードおよびインストールします。

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 central の最新

このコマンドにより、アーキタイプテンプレートツールキットを使用して Maven プロジェクトが作成されます。アーキタイプは、 AWS Lambda 関数ハンドラープロジェクト の足場を生成します。このプロジェクトアーキタイプは、Java SE 8 でコンパイルするように事前設定されており、 で指定された SDK for Java 2.x のバージョンへの依存関係が含まれています-DarchetypeVersion

Maven プロジェクトの作成と設定の詳細については、「Maven 入門ガイド」を参照してください。

Maven 用の Java コンパイラを設定する

前述のようにプロジェクトアーキタイプを使用して AWS Lambda プロジェクトを作成した場合、Java コンパイラの設定はすでに完了しています。

この設定が存在することを確認するには、まず、前のコマンドを実行したときに作成したプロジェクトフォルダ (myapp など) から pom.xml ファイルを開きます。11 行目と 12 行目を見て、この Maven プロジェクトの Java コンパイラのバージョン設定を確認します。また、71~75 行目を見て、必要な Maven コンパイラプラグインが含まれていることを確認します。

<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 に設定されているようにする必要があります。

これらの必須の設定を指定する 1 つの方法として、前述のスニペットを参照してください。

または、次のように、プラグイン宣言を使用してインラインでコンパイラ設定を指定することもできます。

<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 (部品表) アーティファクト依存関係を生成します。ではBOM、同じグループ ID を共有する個々のアーティファクトの依存関係に対して、maven バージョンを指定する必要はありません。

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

置換 2.X.X の最新バージョン AWS SDK for Java 2.xを持つ pom.xml ファイル。

SDK モジュールの依存関係を設定する

を設定したらSDK、プロジェクトで使用する 1 つ以上の AWS SDK for Java モジュールの依存関係を追加できます。

各コンポーネントのバージョン番号を指定することはできますが、部品表アーティファクトを使用して 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.awssdkaws-lambda-java-coreアーティファクトにはバージョンが必要です。

for SDKJava 2.x を使用した Lambda 関数ハンドラーの開発では、 aws-lambda-java-coreが正しい依存関係です。ただし listFunctionsdeleteFunctioninvokeFunction および createFunction などのオペレーションを使用して Lambda リソースを管理する必要があるアプリケーションには、次の依存関係が必要です。

<groupId>software.amazon.awssdk</groupId> <artifactId>lambda</artifactId>
注記

s3 依存関係には、netty-nio-client および apache-client 推移的な依存関係は含まれません。これらのHTTPクライアントの代わりに、アーキタイプにはurl-connection-client依存関係が含まれており、関数 の AWS Lambda 起動レイテンシーを減らすのに役立ちます。

プロジェクトに必要な AWS のサービス と機能のために、モジュールをプロジェクトに追加します。によって AWS SDK for Java 管理されるモジュール (依存関係) はBOM、Maven 中央リポジトリ に記載されています。

注記

コード例から pom.xml ファイルを参照して、プロジェクトに必要な依存関係を特定できます。例えば、DynamoDB サービスの依存関係に関心がある場合は、 の AWS Code Examples Repository からこの例を参照してください 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ディレクトリに 1 つの.jarファイル (JAR) が作成されます (例: myapp/target)。これには、pom.xmlファイルで依存関係として指定したすべてのSDKモジュールJARが含まれます。