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/ からダウンロードできます。AWS SDK for Java は OpenJDK と Amazon Corretto (Open Java Development Kit (OpenJDK) のディストリビューション) でも機能します。最新の OpenJDK バージョンは https://openjdk.java.net/install/index.html からダウンロードしてください。Corretto ページから最新の Amazon Corretto 8 または Amazon Corretto 11 バージョンをダウンロードします。

  • 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.XMaven 中央の最新バージョンに置き換えてください。

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

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 を依存関係として宣言する必要があります。

前述のようにプロジェクトアーキタイプを使用してプロジェクトを作成した場合、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>
注記

pom.xml ファイル内の 2.X.X最新バージョンの AWS SDK for Java 2.x に置き換えます。

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.awssdk のアーティファクトに影響するため、aws-lambda-java-core アーティファクトにはバージョンが必要です。

Java 2.x 用の SDK を使用して 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 サービスの依存関係に関心がある場合は、GitHub の「AWS Code Examples Repository」にある「This example」を参照してください。(/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)。この JAR には、pom.xml ファイルの依存関係として指定したすべての SDK モジュールが含まれています。