1.10. JVM とネイティブビルドモード
次のセクションでは、Mandrel または GraalVM の native-image ツールを使用して、クラシック JVM アプリケーションおよびネイティブアプリケーションをコンパイルする方法を説明します。
1.10.1. アプリケーションをクラシック JVM アプリケーションとしてコンパイルする リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションを、JVM アプリケーションとしてコンパイルできます。このオプションは、quarkus.package.type 設定プロパティーに基づいており、次のいずれかのファイルを生成します。
-
fast-jar: Quarkus およびデフォルトの設定オプション用に最適化された JAR ファイル。その結果、起動時間がわずかに短縮され、メモリー使用量がわずかに減少します。 -
legacy-jar: 典型的な JAR ファイル。 uber-jar: 単一のスタンドアロン JAR ファイル。これらの JAR ファイルはすべてのオペレーティングシステムで動作し、ネイティブイメージよりもはるかに短時間でビルドされます。
1.10.2. アプリケーションをネイティブイメージにコンパイルする リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションをネイティブイメージにコンパイルできます。その場合、quarkus.package.type 設定プロパティーを native に設定します。
このプロパティーを使用すると、たとえば Windows の .exe ファイルなど、選択したオペレーティングシステム専用にコンパイルされた実行可能バイナリーファイルを作成できます。これらのファイルは JAVA JAR ファイルよりも起動時間が短く、RAM 消費量も少なくなりますが、コンパイルには数分かかります。さらに、プロファイルに基づく最適化が欠落しているため、ネイティブバイナリーを使用して達成できる最大スループットは、通常の JVM アプリケーションよりも低くなります。
Mandrel を使用する
Mandrel は、GraalVM for Red Hat build of Quarkus 用に特化されたディストリビューションで、Linux コンテナー化環境をターゲットとするネイティブ実行可能ファイルをビルドする場合に推奨されるアプローチでもあります。Mandrel アプローチは、コンテナー化された環境にコンパイル出力を埋め込むのに最適ですが、Linux64 ビットのネイティブ実行可能ファイルしか提供されません。したがって、
.exeなどの結果はオプションではありません。Mandrel ユーザーは、ネイティブ実行可能ファイルのビルドにコンテナーを使用することが推奨されます。
公式 Mandrel イメージを使用して、Docker または Podman のローカルインストールでアプリケーションをネイティブモードにコンパイルするには、次のプロパティーを指定して
mvn packageコマンドを入力します。-Dquarkus.package.type=native -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:{MandrelVersion}-{JDK-ver-other}-Dquarkus.package.type=native -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:{MandrelVersion}-{JDK-ver-other}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Mandrel を使用してネイティブ実行可能ファイルをビルドする方法の詳細は、Red Hat build of Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルする を参照してください。
- 利用可能な Mandrel イメージのリストは、Available Mandrel images で確認してください。
GraalVM を使用する
Mandrel は macOS をサポートしていないため、Oracle GraalVM を使用してこのオペレーティングシステム上でネイティブ実行可能ファイルをビルドできます。
ベアメタル Linux または Windows ディストリビューション上で Oracle GraalVM を直接使用して、ネイティブ実行可能ファイルをビルドすることもできます。このプロセスの詳細は、Oracle GraalVM README およびリリースノートを参照してください。
Oracle GraalVM を使用してネイティブ実行可能ファイルをビルドする方法の詳細は、Red Hat build of Quarkus アプリケーションをネイティブ実行可能ファイルにコンパイルする を参照してください。