Quarkus アプリケーションのネイティブ実行可能ファイルへのコンパイル
概要
第1章 Quarkus アプリケーションのネイティブ実行可能ファイルへのコンパイル リンクのコピーリンクがクリップボードにコピーされました!
アプリケーション開発者は、Red Hat ビルドの Quarkus を使用して、OpenShift Container Platform 環境およびサーバーレス環境で実行される Java で書かれたマイクロサービスを作成できます。ネイティブ実行可能ファイルにコンパイルされたアプリケーションは、メモリーのフットプリントが小さく、起動時間は高速です。
このガイドでは、Quarkus Getting Started プロジェクトをネイティブ実行可能ファイルにコンパイルする方法と、ネイティブ実行可能ファイルを設定してテストする方法を説明します。Quarkus スタートガイド で作成したアプリケーションが必要です。
Red Hat ビルドの Quarkus を使用したネイティブ実行可能ファイルのビルドでは、以下について説明します。
- Podman または Docker などのコンテナーランタイムを使用した単一コマンドでのネイティブ実行可能ファイルのビルド
- 生成されたネイティブ実行可能ファイルを使用して、カスタムコンテナーイメージを作成します。
- OpenShift Container Platform Docker ビルドストラテジーを使用して、コンテナーイメージを作成します。
- Quarkus ネイティブアプリケーションを OpenShift Container Platform にデプロイします。
- ネイティブ実行可能ファイルの設定
- ネイティブ実行可能ファイルのテスト
前提条件
OpenJDK 17 がインストールされ、
JAVA_HOME環境変数が Java SDK の場所を指定するように設定されている。- Red Hat build of OpenJDK は、Red Hat カスタマーポータルにログインして ソフトウェアダウンロード ページからダウンロードできます。
- Open Container Initiative (OCI) と互換性のあるコンテナーランタイム (Podman、Docker など)。
Quarkus Getting Started プロジェクトを完了している。
- Quarkus Getting Started プロジェクトのビルド方法は、Quarkus スタートガイド を参照し てください。
-
あるいは、Quarkus quickstart archive をダウンロードするか、
Quarkus QuickstartsGit リポジトリーをクローンしてください。プロジェクトのサンプルはgetting-startedディレクトリーにあります。
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
1.1. ネイティブ実行可能ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
ネイティブバイナリーは、特定のオペレーティングシステム(OS)または CPU アーキテクチャーで実行するために作成される実行可能ファイルです。
以下に、ネイティブ実行可能ファイルの例をいくつかリストします。
- Mac のユニバーサルバイナリー
- Linux 用の ELF バイナリー
- Windows の EXE バイナリー
ネイティブ実行可能ファイルをビルドする場合の利点の 1 つは、アプリケーションと JVM を含む依存関係が 1 つのファイルにパッケージ化されることです。アプリケーションのネイティブ実行可能ファイルには、次の項目が含まれています。
- コンパイル済みアプリケーションコード
- Java API
- 必要なライブラリー
- アプリケーションの起動時間を改善し、ディスクおよびメモリーのフットプリントを最小限に抑えるための Java 仮想マシン(JVM)の縮小バージョン。
Quarkus アプリケーションからネイティブ実行可能ファイルを生成する場合は、コンテナ内ビルドまたはローカルホストビルドのいずれかを選択できます。次の表は、使用可能なビルドオプションとその説明を示しています。
| ビルドオプション | Requires | 用途 | 結果 | 利点 |
|---|---|---|---|---|
| コンテナ内ビルド - サポート対象 | コンテナーランタイム (Podman や Docker など) |
デフォルトの | Linux 64 ビット実行可能ファイル | GraalVM はローカルで設定する必要がないため、CI パイプライン の実行効率が向上します。 |
| ローカルホストビルド - アップストリームでのみサポート対象 | GraalVM または Mandrel のローカルインストール |
| ビルドが実行されるマシンと同じ OS および CPU アーキテクチャーを持つ実行ファイル。 | Docker や Podman などのツールを使用できない、または使用しない開発者の代替です。全体的にはコンテナーよりも高速です。 |
Red Hat ビルドの Quarkus 2.13 は、Java 17 ベースの Mandrel 22.3 ベースイメージに基づくネイティブ実行可能ファイルの構築のみをサポートします。
他のイメージはコミュニティーで入手できますが、製品ではサポートされていないため、Red Hat のサポートを希望する実稼働ビルドには使用しないでください。
ソースが Java 11 に基づいて書かれており、Java 12 - 17 の機能を使用せずに、Java 17 ベースの Mandrel 22.3 ベースイメージを使用して、そのアプリケーションのネイティブ実行可能ファイルをコンパイルできます。
Red Hat ビルドの Quarkus は、Red Hat ビルドの Quarkus ネイティブビルダーイメージ( Mandrel の製品化ディストリビューション)を使用したネイティブ Linux 実行可能ファイルの構築 をサポートします。詳細は、Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルする を参照してください。Oracle GraalVM Community Edition (CE)、Mandrel Community Edition、またはその他の GraalVM ディストリビューションを使用したネイティブ実行可能ファイルのビルドは、Red Hat build of Quarkus ではサポートされていません。
1.1.1. コンテナ内ビルドを使用してネイティブ実行可能ファイルを生成する リンクのコピーリンクがクリップボードにコピーされました!
ネイティブ実行可能ファイルを作成し、ネイティブイメージテストを実行するには、コンテナ内ビルド用に Red Hat build of Quarkus が提供する native プロファイルを使用します。
前提条件
- Podman または Docker がインストールされている。
- コンテナーは、8 GB 以上のメモリーにアクセスできる。
手順
Getting Started プロジェクトの
pom.xmlファイルを開き、プロジェクトにnativeプロファイルが含まれていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のいずれかの方法を使用して、ネイティブ実行可能ファイルをビルドします。
Maven の使用:
Docker の場合:
./mvnw package -Pnative -Dquarkus.native.container-build=true
./mvnw package -Pnative -Dquarkus.native.container-build=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Podman の場合:
./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podman
./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podmanCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Quarkus CLI を使用する:
Docker の場合:
quarkus build --native -Dquarkus.native.container-build=true
quarkus build --native -Dquarkus.native.container-build=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Podman の場合:
quarkus build --native -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podman
quarkus build --native -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podmanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 手順を実行した結果
これらのコマンドを実行すると、
targetディレクトリーに*-runnerバイナリーが作成されます。その場合、以下が適用されます。-
*-runnerファイルは、Quarkus が生成したビルド済みのネイティブバイナリーです。 targetディレクトリーは、Maven アプリケーションをビルドするときに Maven が作成するディレクトリーです。重要Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルすると、分析および最適化の際にメモリーを大量に消費します。
quarkus.native.native-image-xmx設定プロパティーを設定して、ネイティブコンパイル時に使用されるメモリーの量を制限できます。メモリー制限を低く設定すると、ビルド時間が長くなる可能性があります。
ネイティブ実行可能ファイルを実行するには、以下のコマンドを入力します。
./target/*-runner
./target/*-runnerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
詳細は、Quarkus アプリケーションのネイティブ実行可能ファイルへのコンパイル の ネイティブ実行可能ファイルの設定プロパティー を 参照してください。
1.1.2. ローカルホストビルドを使用してネイティブ実行可能ファイルを生成する リンクのコピーリンクがクリップボードにコピーされました!
Docker または Podman を使用しない場合は、ネイティブ実行可能ファイルの作成と実行に Quarkus ローカルホストビルドオプションを使用します。
ローカルホストビルドアプローチを使用すると、コンテナーを使用した場合と比べて高速になるため、Linux オペレーティングシステムを使用するマシンに適しています。
Red Hat build of Quarkus では、次に示す手順の実稼働環境での使用はサポートされません。この方法は、テストで、もしくは Docker や Podman が使用できない場合のバックアップアプローチとしてのみ使用してください。
前提条件
ネイティブ実行可能ファイルの構築 ガイドに従って適切に設定された Mandrel または GraalVm の ローカルインストール。
-
GraalVM インストールの場合は、
native-imageジもインストールされている必要があります。
-
GraalVM インストールの場合は、
手順
GraalVM または Mandrel の場合は、次のいずれかの方法を使用してネイティブ実行可能ファイルをビルドします。
Maven の使用:
./mvnw package -Pnative
./mvnw package -PnativeCopy to Clipboard Copied! Toggle word wrap Toggle overflow Quarkus CLI を使用する:
quarkus build --native
quarkus build --nativeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 手順を実行した結果
これらのコマンドを実行すると、
targetディレクトリーに*-runnerバイナリーが作成されます。その場合、以下が適用されます。-
*-runnerファイルは、Quarkus が生成したビルド済みのネイティブバイナリーです。 targetディレクトリーは、Maven アプリケーションをビルドするときに Maven が作成するディレクトリーです。注記ネイティブ実行可能ファイルをビルドすると、
quarkus.profileプロパティーで変更されない限り、prodプロファイルが有効になります。
-
ネイティブ実行可能ファイルを実行します。
./target/*-runner
./target/*-runnerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記-
quarkus.test.native-image-profileプロパティーで変更されない限り、ネイティブテストはデフォルトでprodプロファイルを使用して実行されます。
-
関連情報
詳細は、ネイティブ実行可能ファイルの作成 を 参照してください。
1.2. カスタムコンテナーイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下のいずれかの方法を使用して、Quarkus アプリケーションからコンテナーイメージを作成できます。
- 手動でコンテナーを作成します。
- OpenShift Container Platform Docker ビルドを使用してコンテナーを作成します。
Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルすると、分析および最適化の際にメモリーを大量に消費します。quarkus.native.native-image-xmx 設定プロパティーを設定して、ネイティブコンパイル時に使用されるメモリーの量を制限できます。メモリー制限を低く設定すると、ビルド時間が長くなる可能性があります。
1.2.1. 手動でコンテナーを作成します。 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、 Linux AMD64 向けにアプリケーションを使用してコンテナーイメージを手動で作成する方法を説明します。Quarkus ネイティブコンテナーを使用してネイティブイメージを生成すると、そのネイティブイメージは Linux AMD64 をターゲットとする実行可能ファイルを作成します。ホストオペレーティングシステムが Linux AMD64 ではない場合、バイナリーは直接実行できず、手動でコンテナーを作成する必要があります。
Quarkus Getting Started プロジェクトには、以下の内容と共に src/main/docker ディレクトリーに Dockerfile.native が含まれます。
Universal Base Image (UBI)
次のリストは、Dockerfile での使用に適したイメージを示しています。
Red Hat Universal Base Image 8 (UBI8)。このベースイメージは、コンテナー化されたすべてのアプリケーション、ミドルウェア、ユーティリティーのベースレイヤーになるように設計されています。
registry.access.redhat.com/ubi8/ubi:8.6
registry.access.redhat.com/ubi8/ubi:8.6Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Universal Base Image 8 Minimal (UBI8-minimal)。microdnf をパッケージマネージャーとして使用する、最小化された UBI8 イメージ。
registry.access.redhat.com/ubi8/ubi-minimal:8.6
registry.access.redhat.com/ubi8/ubi-minimal:8.6Copy to Clipboard Copied! Toggle word wrap Toggle overflow - すべての Red Hat Base イメージは、コンテナーイメージ カタログサイトで入手できます。
手順
次のいずれかの方法を使用して、ネイティブ Linux 実行可能ファイルをビルドします。
Docker:
./mvnw package -Pnative -Dquarkus.native.container-build=true
./mvnw package -Pnative -Dquarkus.native.container-build=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Podman:
./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podman
./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.container-runtime=podmanCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のいずれかの方法を使用して、コンテナーイメージをビルドします。
Docker:
docker build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .
docker build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .Copy to Clipboard Copied! Toggle word wrap Toggle overflow Podman
podman build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .
podman build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started .Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のいずれかの方法を使用して、コンテナーを実行します。
Docker:
docker run -i --rm -p 8080:8080 quarkus-quickstart/getting-started
docker run -i --rm -p 8080:8080 quarkus-quickstart/getting-startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow Podman:
podman run -i --rm -p 8080:8080 quarkus-quickstart/getting-started
podman run -i --rm -p 8080:8080 quarkus-quickstart/getting-startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.2. OpenShift Docker ビルドを使用してコンテナーを作成する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Docker ビルドストラテジーを使用して、Quarkus アプリケーションのコンテナーイメージを作成できます。このストラテジーは、クラスター内のビルド設定を使用してコンテナーイメージを作成します。
前提条件
-
OpenShift Container Platform クラスターとインストールされている
ocツールの最新バージョンにアクセスできる。ocのインストールに関する詳細は、OpenShift Container Platform クラスターのインストールおよび設定 ガイドの CLI のインストール を参照してください。 - OpenShift Container Platform API エンドポイントの URL。
手順
OpenShift CLI にログインします。
oc login -u <username_url>
oc login -u <username_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift に新規プロジェクトを作成します。
oc new-project <project_name>
oc new-project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow src/main/docker/Dockerfile.nativeファイルに基づいてビルド設定を作成します。cat src/main/docker/Dockerfile.native | oc new-build --name <build_name> --strategy=docker --dockerfile -
cat src/main/docker/Dockerfile.native | oc new-build --name <build_name> --strategy=docker --dockerfile -Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトをビルドします。
oc start-build <build_name> --from-dir .
oc start-build <build_name> --from-dir .Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトを OpenShift Container Platform にデプロイします。
oc new-app <build_name>
oc new-app <build_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを公開するには、以下を実行します。
oc expose svc/<build_name>
oc expose svc/<build_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. ネイティブ実行可能ファイルの設定プロパティー リンクのコピーリンクがクリップボードにコピーされました!
設定プロパティーは、ネイティブ実行可能ファイルの生成方法を定義します。application.properties ファイルを使用して、Quarkus アプリケーションを設定できます。
設定プロパティー
以下の表は、ネイティブ実行可能ファイルの生成方法を定義するよう設定できる設定プロパティーのリストです。
| プロパティー | 説明 | 型 | デフォルト |
|
|
debug が有効で、デバッグシンボルが生成されます。シンボルは別の | boolean | false |
|
| ネイティブイメージに追加すべきではないリソースパスに一致する glob のコンマ区切りリスト。 | 文字列のリスト | |
|
| ビルドプロセスにパスする追加の引数。 | 文字列のリスト | |
|
|
HTTP URL ハンドラーを有効にします。これにより、HTTP URL に対して | boolean |
|
|
|
HTTPS URL ハンドラーを有効にします。これにより、HTTPS URL に対する | boolean |
|
|
| ネイティブイメージにすべてのセキュリティーサービスを追加します。 | boolean |
|
|
| ネイティブイメージにすべてのキャラクターセットを追加します。これにより、イメージサイズが大きくなります。 | boolean |
|
|
| GraalVM ディストリビューションのパスが含まれます。 | string |
|
|
| JDK のパスが含まれます。 |
| |
|
| ネイティブイメージを生成するために使用する Java の最大ヒープサイズ。 | string | |
|
| ネイティブイメージのビルドを実行する前に、デバッガーがビルドプロセスにアタッチするまで待機します。GraalVM インターナルの知識のあるユーザーにとって、これは高度なオプションになります。 | boolean |
|
|
|
| boolean |
|
|
| ネイティブイメージサーバーを再起動します。 | boolean |
|
|
| メモリー管理を改善するために分離を有効にします。 | boolean |
|
|
| ネイティブイメージが失敗した場合に、JVM ベースのフォールバックイメージを作成します。 | boolean |
|
|
| ネイティブイメージサーバーを使用します。これによりコンパイルが高速化されますが、を高速化できますが、キャッシュ無効化の問題により変更が失われる可能性があります。 | boolean |
|
|
|
すべての | boolean |
|
|
| 検査用にすべてのプロキシーのバイトコードをダンプします。 | boolean |
|
|
| コンテナーランタイムを使用してビルドします。デフォルトで Docker が使用されます。 | boolean |
|
|
| イメージをビルドするための Docker イメージ。 | string |
|
|
| イメージをビルドするために使用されるコンテナーランタイム。たとえば、Docker などがあります。 | string | |
|
| コンテナーランタイムにパスするオプション。 | 文字列のリスト | |
|
| イメージの VM イントロスペクションを有効化します。 | boolean |
|
|
| イメージのフルスタックトレースを有効化します。 | boolean |
|
|
| コールパスおよび含まれるパッケージ/クラス/メソッドのレポートを生成します。 | ブール値 |
|
|
| フルスタックトレースを使用して例外を報告します。 | boolean |
|
|
| ランタイム時にエラーを報告します。サポートされていない機能を使用すると、アプリケーションが実行時に失敗する可能性があります。 | boolean |
|
|
|
ネイティブイメージに追加する必要のあるリソースパスに一致する glob のコンマ区切りリスト。すべてのプラットフォームで、パス区切り文字としてスラッシュ ( | 文字列のリスト | |
|
|
デバッグを有効にし、別の | boolean |
|
サポートされている glob 機能
次の表は、サポートされる glob 機能とその説明をリスト化したものです。
| Character | 機能の説明 |
|
|
スラッシュ ( |
|
|
スラッシュ ( |
|
| 1 つの文字と一致しますが、スラッシュとは一致しません。 |
|
| 括弧内に指定された 1 文字を照合しますが、スラッシュは照合しません。 |
|
| ブラケットで指定した範囲の文字の 1 つと一致しますが、スラッシュとは一致しません。 |
|
| ブラケットで指定していない文字の 1 つと一致しますが、スラッシュとは一致しません。 |
|
| ブラケットで指定した範囲外の文字の 1 つと一致しますが、スラッシュとは一致しません。 |
|
| コンマで区切られた置換トークンのいずれかと一致します。トークンには、ワイルドカード、ネストされたオルタネーション、および範囲が含まれます。 |
|
|
エスケープ文字。エスケープには、 |
1.3.1. Quarkus ネイティブコンパイルのメモリー消費の設定 リンクのコピーリンクがクリップボードにコピーされました!
Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルすると、分析および最適化の際にメモリーを大量に消費します。quarkus.native.native-image-xmx 設定プロパティーを設定して、ネイティブコンパイル時に使用されるメモリーの量を制限できます。メモリー制限を低く設定すると、ビルド時間が長くなる可能性があります。
手順
以下のいずれかの方法を使用して
quarkus.native.native-image-xmxプロパティーに値を設定し、ネイティブイメージのビルドタイム中のメモリー消費を制限します。application.propertiesファイルを使用します。quarkus.native.native-image-xmx=<maximum_memory>
quarkus.native.native-image-xmx=<maximum_memory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow システムプロパティーの設定
mvn -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=<maximum_memory>
mvn -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=<maximum_memory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、Docker を使用してネイティブ実行可能ファイルをビルドします。Podman を使用するには、
-Dquarkus.native.container-runtime=podman引数を追加します。
たとえば、メモリー制限を 6 GB に設定するには、quarkus.native.native-image-xmx=6g を入力します。値は、2MB より大きい 1024 の倍数にする必要があります。メガバイトを示す m または M、ギガバイトを示す g または G の文字を追加します。
1.4. ネイティブ実行可能ファイルのテスト リンクのコピーリンクがクリップボードにコピーされました!
ネイティブ実行可能ファイルの機能をテストするには、ネイティブモードでアプリケーションをテストします。@QuarkusIntegrationTest アノテーションを使用してネイティブ実行可能ファイルをビルドし、HTTP エンドポイントに対してテストを実行します。
手順
pom.xmlファイルを開き、nativeプロファイルに以下の要素があることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Maven Failsafe プラグイン(
maven-failsafe-plugin)は統合テストを実行し、生成されるネイティブ実行可能ファイルの場所も示します。src/test/java/org/acme/quickstart/NativeGreetingResourceIT.javaファイルを開き、次のコンテンツが含まれていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow テストを実行します。
./mvnw verify -Pnative
./mvnw verify -PnativeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例は、このコマンドの出力を示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Quarkus は、ネイティブイメージの開始まで 60 秒間待機し、その後ネイティブテストに自動的に失敗します。この期間は、
quarkus.test.wait-timeシステムプロパティーを設定することで変更できます。以下のコマンドを使用して、待機時間を延長できます。この場合の
<duration>は待機時間 (秒単位) です。./mvnw verify -Pnative -Dquarkus.test.wait-time=<duration>
./mvnw verify -Pnative -Dquarkus.test.wait-time=<duration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.1. ネイティブ実行可能ファイルとして実行する場合のテストを除外する リンクのコピーリンクがクリップボードにコピーされました!
ネイティブアプリケーションに対してテストを実行する場合は、HTTP エンドポイントと対話することしかできません。テストはネイティブで実行されないため、JVM でテストを実行する場合と同様に、アプリケーションのコードにはリンクできません。
JVM とネイティブ実行の間でテストクラスを共有し、@DisabledOnNativeImage アノテーションを使用して特定のテストを除外して、その JVM 上でのみテストを実行できます。
1.4.2. 既存のネイティブ実行可能ファイルのテスト リンクのコピーリンクがクリップボードにコピーされました!
Failsafe Maven プラグインを使用すると、既存の実行可能ビルドに対してテストを実行できます。ビルド後に、バイナリーで複数のテストセットを段階的に実行できます。
Quarkus で生成したネイティブ実行可能ファイルをテストするには、利用可能な Maven コマンドを使用します。コマンドラインを使用してこのタスクを完了できる同等の Quarkus CLI コマンドはありません。
手順
ビルド済みのネイティブ実行可能ファイルに対してテストを実行します。
./mvnw test-compile failsafe:integration-test
./mvnw test-compile failsafe:integration-testCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
FailsafeMaven プラグインを使用して、既存のネイティブイメージに対してテストを実行します。あるいは、以下のコマンドを使用してネイティブ実行可能ファイルへのパスを指定することもできます。
<path>は、ネイティブイメージパスになります。./mvnw test-compile failsafe:integration-test -Dnative.image.path=<path>
./mvnw test-compile failsafe:integration-test -Dnative.image.path=<path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow