Azure SDK と Gradle の概要

この記事では、Gradle を使用して Azure SDK for Java でアプリケーションをビルドする方法について説明します。 この記事では、Gradle で新しいプロジェクトを設定し、Gradle でプロジェクトをビルドし、GraalVM ネイティブ・イメージ・ツールを使用してプラットフォーム固有のネイティブ・バイナリを作成します。

前提条件

  • Java Developer Kit バージョン 8 以降。 最適なエクスペリエンスを得るために、バージョン 17 をお勧めします。
  • Gradle

新しい Gradle プロジェクトを作成する

Maven とは異なり、Gradle にはテンプレート形式でプロジェクトをブートストラップするためのアーキタイプ システムがありません。 Gradle プロジェクトのブートストラップは可能ですが、Maven と同等の Java 固有の Azure SDK は構成されません。 手順を実行するには、まず次のコマンドを使用して、コマンド ラインから新しい空のディレクトリを作成します。

gradle init --type java-application

短い一連の質問に回答するように求められます。その後、ファイルとサブディレクトリのコレクションを含むディレクトリが作成されます。 生成されたファイルが確実にコンパイルされるようにするには、ビルドを確認するために必要な次のコマンドを実行します。

gradle clean assemble test

これで、アプリ ディレクトリにある build.gradle ファイルの編集に進むことができます。 まず、依存関係のバージョン管理を簡単にするために、Azure SDK for Java チームは Azure SDK for Java client BOM を毎月発行します。 この BOM ファイルには、互換性のある依存関係のバージョンを持つ、一般提供 (GA) されている Azure SDK for Java クライアント パッケージがすべて含まれています。

BOM 内の Azure SDK for Java クライアント ライブラリの依存関係バージョンを使用するには、プロジェクトの build.gradle ファイルに次のスニペットを含めます。 {bom_version_to_target} プレースホルダーを、Azure SDK for Java BOM の最新リリースに置き換えます。

dependencies {
    implementation platform('com.azure:azure-sdk-bom:{bom_version_to_target}')
}

Azure SDK for Java クライアント BOM のすべてのリリースを、azure sdk-bom で参照できます。 Azure SDK for Java クライアント ライブラリの最新機能を活用するために、最新バージョンを使用することをお勧めします。

Azure SDK for Java BOM に応じて開始したら、バージョンを指定せずにライブラリへの依存関係を含めることができます。 これらのバージョン値は、Azure SDK for Java BOM で自動的に検索されます。 たとえば、azure-storage-blob 依存関係を含めるには、build.gradle ファイルに次の行を追加します。

dependencies {
    implementation 'com.azure:azure-storage-blob'
}

Gradle を使用してプロジェクトの依存関係を定義すると、プロジェクトの管理が簡単になります。 Azure SDK BOM を使用すると、プロジェクトを加速しながら、長期的な依存関係のバージョンを自信をもって管理できます。 依存関係を調整し、最新の状態に保つために、BOM を使用することをお勧めします。

BOM に含まれていないパッケージを含める

Azure SDK for Java のクライアント BOM には、一般公開 (GA) のライブラリのみが含まれています。 まだベータ版のパッケージ、または BOM に含まれているものとは別のライブラリ バージョンに依存する場合は、dependency セクションで、groupId および artifactId と共に、Maven の依存関係のバージョンを指定できます。 次の例に示すように、同じプロジェクト POM ファイル内で、BOM バージョン使用する依存関係と、オーバーライドされたバージョンを使用する依存関係を使用することを選択できます。

dependencies {
    // Use the dependency version that is in the BOM
    implementation 'com.azure:azure-messaging-eventhubs'

    // Override the Service Bus dependency version specified in the BOM
    implementation 'com.azure:azure-messaging-servicebus:7.4.0'
}

この方法を使用して、プロジェクトでバージョンを直接指定すると、依存関係のバージョンが競合する可能性があります。 このような競合が発生する理由は、それぞれのパッケージが、共通の依存関係の異なるバージョンに依存している場合があり、それらのバージョンが相互に互換性がない可能性があるためです。 競合が発生した場合、コンパイル時または実行時に望ましくない動作につながる可能性があります。 必要でない限り、Azure SDK BOM にあるバージョンに依存することをお勧めします。 Azure SDK for Java を使用する際の依存関係の処理の詳細については、「依存関係バージョンの競合のトラブルシューティング」を参照してください。

GraalVM を使用してネイティブ イメージを構築する

GraalVM を使用すると、Java アプリケーションのネイティブ イメージを作成できます。 GraalVM は、Java コードを事前にネイティブ コンピューター コードにコンパイルします。これにより、特定の状況でパフォーマンスが大幅に向上する可能性があります。 Azure SDK for Java では、GraalVM ネイティブ イメージのコンパイルをサポートするために、各クライアント ライブラリに必要なメタデータが提供されます。

開始するには、GraalVM をインストールし、ネイティブ イメージをコンパイルするための開発システムを準備する必要があります。 GraalVM のインストール プロセスは簡単です。GraalVM のドキュメントでは、GraalVM をインストールし、GraalVM を使用してネイティブ イメージをインストールする手順を説明しています。 [前提条件] セクションに従い、オペレーティング システムに必要なネイティブ コンパイルを慎重にインストールします。

既存の Gradle ベースのプロジェクトでは、GraalVM のサポートをプロジェクトに追加する方法の「Gradle の GraalVM の指示」に従います。 その後、ビルド オプションが増え、アプリケーションを標準の Java バイトコードにコンパイルしたり、GraalVM によってコンパイルされたネイティブ イメージにコンパイルしたりできます。

これで、ネイティブ イメージ ビルドを実行する準備ができました。 標準の Gradle ツールを使用して、GraalVM ネイティブ イメージを使用できます。 Gradle の場合、次のコマンドを使用します。

gradle nativeCompile

このコマンドを実行すると、GraalVM は実行されているプラットフォームのネイティブ実行可能ファイルを出力します。 実行可能ファイルは、プロジェクトの Gradle /app/build/native/nativeCompile ディレクトリに表示されます。 これで、この実行可能ファイルを使用してアプリケーションを実行できるようになり、標準の Java アプリケーションと同様に実行されます。

次のステップ