Quarkus スタートガイド
はじめに
アプリケーション開発者は、Red Hat ビルドの Quarkus を使用して、OpenShift 環境およびサーバーレス環境で実行される Java で書かれたマイクロサービスベースのアプリケーションを作成できます。ネイティブ実行可能ファイルにコンパイルされたアプリケーションは、メモリーのフットプリントが小さく、起動時間は高速です。
本ガイドでは、Apache Maven を使用して hello
HTTP エンドポイントを公開する簡単な Quarkus プロジェクトを作成、テスト、パッケージ化、および実行する方法を説明します。ディペンデンシーインジェクション (依存性の注入) を実証するために、このエンドポイントは greeting
Bean を使用します。

前提条件
OpenJDK (JDK) 11 がインストールされ、
JAVA_HOME
環境変数が Java SDK の場所を指定している。- Red Hat ビルドの Open JDK は、Red Hat カスタマーポータルの Software Downloads ページからダウンロードできます (ログインが必要です)。
- Apache Maven 3.6.2 以降がインストールされている。Maven は Apache Maven Project の Web サイトから入手できます。
Getting Started の演習の完全な実例については、Quarkus quickstart archive をダウンロードするか、Quarkus Quickstarts
Git リポジトリーをクローンしてください。Getting Started の例は、getting-started
ディレクトリーにあります。
Red Hat ドキュメントへのフィードバック (英語のみ)
弊社の技術的な内容についてのフィードバックに感謝します。ご意見をお聞かせください。コメントの追加、Insights の提供、誤字の修正、および質問を行う必要がある場合は、ドキュメントで直接行うこともできます。
Red Hat アカウントがあり、カスタマーポータルにログインしている必要があります。
カスタマーポータルからドキュメントのフィードバックを送信するには、以下の手順を実施します。
- Multi-page HTML 形式を選択します。
- ドキュメントの右上にある Feedback ボタンをクリックします。
- フィードバックを提供するテキストのセクションを強調表示します。
- ハイライトされたテキストの横にある Add Feedback ダイアログをクリックします。
- ページの右側のテキストボックスにフィードバックを入力し、Submit をクリックします。
フィードバックを送信すると、自動的に問題の追跡が作成されます。Submit をクリックすると表示されるリンクを開き、問題の監視を開始するか、さらにコメントを追加します。
貴重なフィードバックにご協力いただきありがとうございます。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Red Hat ビルドの Quarkus
Red Hat ビルドの Quarkus は、コンテナーおよび Red Hat OpenShift Container Platform と使用するために最適化された Kubernetes ネイティブ Java スタックです。Quarkus は、Eclipse MicroProfile、Apache Kafka、RESTEasy (JAX-RS)、Hibernate ORM (JPA)、Spring、Infinispan、Apache Camel などの一般的な Java 標準、フレームワーク、およびライブラリーと連携するように設計されています。
Quarkus のディペンデンシーインジェクション (依存性の注入) ソリューションは、CDI (コンテキストとディペンデンシーインジェクション) をベースとし、エクステンションフレームワークを備えているので、機能の拡張、およびフレームワークの設定、起動、アプリケーションへの統合が可能です。
Quarkus は、コンテナーファーストという手法で Java アプリケーションをビルドします。この手法により、Java で書かれたマイクロサービスベースのアプリケーションのビルドが大幅に容易になるほか、これらのアプリケーションがサーバーレスコンピューティングフレームワークで実行している関数を呼び出すことができるようになります。これにより、Quarkus アプリケーションのメモリーフットプリントは小さくなり、起動時間は高速化されます。
第2章 Apache Maven および Quarkus
Apache Maven は、ソフトウェアプロジェクトの作成、管理、ビルドを行う Java アプリケーションの開発で使用される分散型ビルド自動化ツールです。Maven は Project Object Model (POM) ファイルと呼ばれる標準の設定ファイルを使用して、プロジェクトの定義や構築プロセスの管理を行います。POM ファイルは、モジュールおよびコンポーネントの依存関係、ビルドの順番、結果となるプロジェクトパッケージのターゲットを記述し、XML ファイルを使用して出力します。これにより、プロジェクトが適切かつ統一された状態でビルドされるようになります。
Maven リポジトリー
Maven リポジトリーには、Java ライブラリー、プラグイン、およびその他のビルドアーティファクトが格納されます。デフォルトのパブリックリポジトリーは Maven 2 Central Repository ですが、複数の開発チームの間で共通のアーティファクトを共有する目的で、社内のプライベートおよび内部リポジトリーとすることが可能です。また、サードパーティーのリポジトリーも利用できます。
Quarkus プロジェクトでオンライン Maven リポジトリーを使用するか、または Red Hat ビルドの Quarkus Maven リポジトリーをダウンロードすることができます。
Maven プラグイン
Maven プラグインは、POM ファイルの定義済みの部分で 1 つ以上のゴールを達成します。Quarkus アプリケーションは以下の Maven プラグインを使用します。
-
Quarkus Maven プラグイン (
quarkus-maven-plugin
): Maven による Quarkus プロジェクトの作成を実現して、uber-JAR ファイルの生成をサポートし、開発モードを提供します。 -
Maven Surefire プラグイン (
maven-surefire-plugin
): ビルドライフサイクルのテストフェーズで使用され、アプリケーションでユニットテストを実行します。プラグインは、テストレポートが含まれるテキストファイルと XML ファイルを生成します。
2.1. オンラインリポジトリーの Maven の settings.xml
ファイルの設定
ユーザーの settings.xml
ファイルを設定して、オンライン Quarkus リポジトリーを Quarkus Maven プロジェクトで使用することができます。これは推奨される手法です。リポジトリーマネージャーまたは共有サーバー上のリポジトリーと使用する Maven 設定は、プロジェクトの制御および管理性を向上させます。
Maven の settings.xml
ファイルを変更してリポジトリーを設定する場合、変更はすべての Maven プロジェクトに適用されます。
手順
テキストエディターまたは統合開発環境 (IDE) で Maven の
~/.m2/settings.xml
ファイルを開きます。注記~/.m2/
ディレクトリーにsettings.xml
ファイルがない場合には、$MAVEN_HOME/.m2/conf/
ディレクトリーから~/.m2/
ディレクトリーにsettings.xml
ファイルをコピーします。以下の行を Maven の
settings.xml
ファイルの<profiles>
要素に追加します。<!-- Configure the Quarkus Maven repository --> <profile> <id>red-hat-enterprise-maven-repository</id> <repositories> <repository> <id>red-hat-enterprise-maven-repository</id> <url>https://maven.repository.redhat.com/ga/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>red-hat-enterprise-maven-repository</id> <url>https://maven.repository.redhat.com/ga/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile>
以下の行を
settings.xml
ファイルの<activeProfiles>
要素に追加し、ファイルを保存します。<activeProfile>red-hat-enterprise-maven-repository</activeProfile>
2.2. Quarkus Maven リポジトリーのダウンロードおよび設定
オンライン Maven リポジトリーを使用しない場合は、Quarkus Maven リポジトリーをダウンロードして設定できます。Quarkus Maven リポジトリーには、Java 開発者がアプリケーションの構築に使用する要件の多くが含まれています。この手順では、Maven の settings.xml
ファイルを編集し、Quarkus Maven リポジトリーを設定する方法を説明します。
Maven の settings.xml
ファイルを変更してリポジトリーを設定する場合、変更はすべての Maven プロジェクトに適用されます。
手順
- Quarkus Maven リポジトリーの ZIP ファイルは、Red Hat カスタマーポータルの Software Downloads ページからダウンロードできます (ログインが必要です)。
- ダウンロードしたアーカイブを展開します。
-
~/.m2/
ディレクトリーに移動し、テキストエディターまたは統合開発環境 (IDE) で Maven のsettings.xml
ファイルを開きます。 ダウンロードした Quarkus Maven リポジトリーのパスを、
settings.xml
ファイルの<profiles>
要素に追加します。Quarkus Maven リポジトリーのパスの形式は、file://$PATH
にする必要があります (例:file:///home/userX/rh-quarkus-1.11.7.GA-maven-repository/maven-repository
)。<!-- Configure the Quarkus Maven repository --> <profile> <id>red-hat-enterprise-maven-repository</id> <repositories> <repository> <id>red-hat-enterprise-maven-repository</id> <url>file:///path/to/Quarkus/Maven/repository/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>red-hat-enterprise-maven-repository</id> <url>file:///path/to/Quarkus/Maven/repository/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile>
以下の行を
settings.xml
ファイルの<activeProfiles>
要素に追加し、ファイルを保存します。<activeProfile>red-hat-enterprise-maven-repository</activeProfile>
Maven リポジトリーに古いアーティファクトが含まれていると、プロジェクトをビルドまたはデプロイしたときに以下のいずれかの Maven エラーメッセージが表示されることがあります。ここで、<artifact_name>
は不明なアーティファクトの名前で、<project_name>
は構築を試みているプロジェクトの名前になります。
-
Missing artifact <project_name>
-
[ERROR] Failed to execute goal on project <artifact_name>; Could not resolve dependencies for <project_name>
この問題を解決するには、~/.m2/repository
ディレクトリーにあるローカルリポジトリーのキャッシュバージョンを削除し、最新の Maven アーティファクトを強制的にダウンロードします。
第3章 Getting Started プロジェクトの作成
getting-started
プロジェクトでは、Apache Maven および Quarkus Maven プラグインを使用して、簡単な Quarkus アプリケーションを使い始めることができます。
手順
コマンドターミナルで以下のコマンドを入力し、Maven が JDK 11 を使用していること、そして Maven のバージョンが 3.6.2 以上であることを確認します。
mvn --version
- 上記のコマンドで JDK 11 が返されない場合は、JDK 11 へのパスを PATH 環境変数に追加し、上記のコマンドを再度入力します。
プロジェクトをビルドするには、以下のコマンドのいずれか 1 つを実行します。
注記Apple macOS および Microsoft Windows は、実稼働環境ではサポートされません。
Linux または Apple macOS を使用している場合は、以下のコマンドを入力します。
mvn io.quarkus:quarkus-maven-plugin:1.11.7.Final-redhat-00009:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -DplatformGroupId=com.redhat.quarkus \ -DplatformVersion=1.11.7.Final-redhat-00009 \ -DclassName="org.acme.quickstart.GreetingResource" \ -Dpath="/hello" cd getting-started
Microsoft Windows のコマンドラインを使用している場合は、以下のコマンドを入力します。
mvn io.quarkus:quarkus-maven-plugin:1.11.7.Final-redhat-00009:create -DprojectGroupId=org.acme -DprojectArtifactId=getting-started -DplatformGroupId=com.redhat.quarkus -DplatformVersion=1.11.7.Final-redhat-00009 -DclassName="org.acme.quickstart.GreetingResource" -Dpath="/hello"
Microsoft Windows Powershell を使用している場合は、以下のコマンドを入力します。
mvn io.quarkus:quarkus-maven-plugin:1.11.7.Final-redhat-00009:create "-DprojectGroupId=org.acme" "-DprojectArtifactId=getting-started" "-DplatformVersion=1.11.7.Final-redhat-00009" "-DplatformGroupId=com.redhat.quarkus" "-DclassName=org.acme.quickstart.GreetingResource" "-Dpath=/hello"
これらのコマンドにより、
./getting-started
ディレクトリーに以下の要素が作成されます。- Maven プロジェクトディレクトリー構造
-
/hello
で公開されるorg.acme.quickstart.GreetingResource
リソース - ネイティブモードおよび JVM モードでアプリケーションをテストするための関連するユニットテスト
-
アプリケーションの起動後に
http://localhost:8080
でアクセス可能なランディングページ -
src/main/docker
ディレクトリーのDockerfile.jvm
、Dockerfile.native
、およびDockerfile.fast-jar
ファイルの例 - アプリケーションの設定ファイル
ディレクトリー構造が作成されたら、テキストエディターで
pom.xml
ファイルを開き、ファイルの内容を確認します。<dependencyManagement> <dependencies> <dependency> <groupId>com.redhat.quarkus</groupId> <artifactId>quarkus-universe-bom</artifactId> <version>${quarkus.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>io.quarkus</groupId> <artifactId>quarkus-maven-plugin</artifactId> <version>${quarkus-plugin.version}</version> <executions> <execution> <goals> <goal>build</goal> <goal>generate-code</goal> <goal>generate-code-tests</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
Quarkus BOM は
pom.xml
ファイルの<dependencyManagement>
セクションに含まれます。そのため、pom.xml
ファイルに個別の Quarkus 依存関係のバージョンを記述する必要はありません。さらに、アプリケーションをパッケージ化し、開発モードを提供するquarkus-maven-plugin
プラグインがあることを確認できます。pom.xml
ファイルで、quarkus-resteasy
の依存関係を確認します。この依存関係により、REST アプリケーションを開発できます。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency>
src/main/java/org/acme/quickstart/GreetingResource.java
ファイルを確認します。package org.acme.quickstart; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/hello") public class GreetingResource { @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return "hello"; } }
このファイルには、
/hello
エンドポイントに送信するリクエストへの応答としてhello
を返す単純な REST エンドポイントが含まれます。注記Quarkus では、JAX-RS の
Application
クラスはサポートされますが、必須ではありません。さらに、リクエストごとに 1 つのインスタンスが作成されるのではなく、GreetingResource
クラスのインスタンスが 1 つだけ作成されます。これは、別の*Scoped
アノテーションを使用して設定できます。たとえば、ApplicationScoped
、RequestScoped
などを使用できます。
code.quarkus.redhat.com プロジェクトジェネレーターを使用して Quarkus Maven プロジェクトを作成できます。詳細は、「code.quarkus.redhat.com を使用した Quarkus Maven プロジェクトの作成」 を参照してください。
第4章 Quarkus Getting Started プロジェクトのコンパイルおよび起動
Quarkus Getting Started プロジェクトを作成したら、Hello アプリケーションをコンパイルし、hello
エンドポイントが hello
を返すことを確認できます。
この例では、Quarkus の組み込み開発モードを使用しています。開発モードでは、アプリケーションの実行中にアプリケーションソースおよび設定を更新できます。変更が実行中のアプリケーションに反映されます。
前提条件
- Quarkus Getting Started プロジェクトを作成している。
手順
開発モードで Quarkus Hello アプリケーションをコンパイルするには、プロジェクトディレクトリーから以下のコマンドを入力します。
./mvnw compile quarkus:dev
以下の例は、このコマンドの出力を示しています。
[INFO] --------------------< org.acme:getting-started >--------------------- [INFO] Building getting-started 1.0.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ getting-started --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /Users/starksm/Dev/JBoss/Quarkus/starksm64-quarkus-quickstarts/getting-started/src/main/resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ getting-started --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 2 source files to /Users/starksm/Dev/JBoss/Quarkus/starksm64-quarkus-quickstarts/getting-started/target/classes [INFO] [INFO] --- quarkus-maven-plugin:<version>:dev (default-cli) @ getting-started --- Listening for transport dt_socket at address: 5005 2019-02-28 17:05:22,347 INFO [io.qua.dep.QuarkusAugmentor] (main) Beginning quarkus augmentation 2019-02-28 17:05:22,635 INFO [io.qua.dep.QuarkusAugmentor] (main) Quarkus augmentation completed in 288ms 2019-02-28 17:05:22,770 INFO [io.quarkus] (main) Quarkus started in 0.668s. Listening on: http://localhost:8080 2019-02-28 17:05:22,771 INFO [io.quarkus] (main) Installed features: [cdi, resteasy]
新しいターミナルウィンドウに以下のコマンドを入力し、アプリケーションによって提供されるエンドポイントにリクエストを送信します。
curl -w "\n" http://localhost:8080/hello hello
注記この例では、
"\n"
属性を使用して、コマンドの出力の前に新しい行を自動的に追加します。これにより、ターミナルで '%' 文字が出力されたり、出力結果と次のコマンドプロンプトが同じ行に表示されたりすることを防ぎます。- アプリケーションを停止するには、CTRL+C を押します。
第5章 Quarkus ディペンデンシーインジェクション (依存性の注入) の使用
ディペンデンシーインジェクション (依存性の注入) により、クライアントによる消費とは完全に独立した方法で、サービスが使用されるようになります。クライアントの動作からクライアントの依存関係の作成を分離させるので、プログラム設計の結合度を弱めることができます。
Red Hat ビルドの Quarkus におけるディペンデンシーインジェクション (依存性の注入) は、Quarkus ArC をベースとしています。Quarkus ArC とは、Quarkus アーキテクチャーに合わせた CDI ベースのビルドタイム指向のディペンデンシーインジェクションソリューションのことです。Arc は quarkus-resteasy
の推移的な依存関係であり、quarkus-resteasy
はお客様のプロジェクトの依存関係であるため、ArC はすでにダウンロードされています。
前提条件
- Quarkus Getting Started プロジェクトを作成している。
手順
アプリケーションを変更し、コンパニオン Bean を追加するには、以下の内容で
src/main/java/org/acme/quickstart/GreetingService.java
ファイルを作成します。package org.acme.quickstart; import javax.enterprise.context.ApplicationScoped; @ApplicationScoped public class GreetingService { public String greeting(String name) { return "hello " + name; } }
src/main/java/org/acme/quickstart/GreetingResource.java
を編集してGreetingService
をインジェクトし、これを使用して新しいエンドポイントを作成します。package org.acme.quickstart; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.jboss.resteasy.annotations.jaxrs.PathParam; @Path("/hello") public class GreetingResource { @Inject GreetingService service; @GET @Produces(MediaType.TEXT_PLAIN) @Path("/greeting/{name}") public String greeting(@PathParam String name) { return service.greeting(name); } @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return "hello"; } }
アプリケーションを停止した場合は、以下のコマンドを入力して再起動します。
./mvnw compile quarkus:dev
エンドポイントが
hello quarkus
を返すことを確認するには、新しいターミナルウィンドウに以下のコマンドを入力します。curl -w "\n" http://localhost:8080/hello/greeting/quarkus hello quarkus
第6章 JUnit を使用した Quarkus アプリケーションのテスト
Quarkus Getting Started プロジェクトをコンパイルしたら、アプリケーションを JUnit 5 フレームワークでテストし、想定どおりに実行することを確認します。Quarkus プロジェクトが生成した pom.xml
ファイルには、テスト用の依存関係が 2 つあります。
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-junit5</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <scope>test</scope> </dependency>
quarkus-junit5
依存関係は、JUnit 5 テストフレームワークを制御する @QuarkusTest
アノテーションを提供するため、テストに必要です。rest-assured
依存関係は必須ではありませんが、HTTP エンドポイントをテストする便利な方法を提供するため、統合されています。正しい URL が自動的に設定されるため、何も設定する必要はありません。
これらのテストは REST-assured フレームワークを使用しますが、希望する場合は別のライブラリーを使用できます。
前提条件
- Quarkus Getting Started プロジェクトをコンパイルしている。
手順
生成された
pom.xml
ファイルを開き、コンテンツを確認します。<plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${surefire-plugin.version}</version> <configuration> <systemPropertyVariables> <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> <maven.home>${maven.home}</maven.home> </systemPropertyVariable> </configuration> </plugin>
注記:
-
アプリケーションがテスト用に正しいログマネージャーを使用するように、
java.util.logging.manager
システムプロパティーが設定されます。 -
maven.home
プロパティーは、プロジェクトに適用するカスタム Maven 設定を保存できるsettings.xml
ファイルの場所を参照します。
-
アプリケーションがテスト用に正しいログマネージャーを使用するように、
src/test/java/org/acme/quickstart/GreetingResourceTest.java
ファイルを以下の内容に一致するように編集します。package org.acme.quickstart; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; import java.util.UUID; import static io.restassured.RestAssured.given; import static org.hamcrest.CoreMatchers.is; @QuarkusTest public class GreetingResourceTest { @Test public void testHelloEndpoint() { given() .when().get("/hello") .then() .statusCode(200) .body(is("hello")); } @Test public void testGreetingEndpoint() { String uuid = UUID.randomUUID().toString(); given() .pathParam("name", uuid) .when().get("/hello/greeting/{name}") .then() .statusCode(200) .body(is("hello " + uuid)); } }
注記QuarkusTest
ランナーを使用することで、テストを開始する前に JUnit にアプリケーションを起動するよう指示します。Maven からこれらのテストを実行するには、以下のコマンドを入力します。
./mvnw test
注記IDE からテストを実行することもできます。その場合は、最初にアプリケーションを停止してください。
デフォルトでは、テストはポート
8081
で実行されるため、実行中のアプリケーションと競合しません。Quarkus では、RestAssured
依存関係はこのポートを使用するように設定されています。別のクライアントを使用する場合は、@TestHTTPResource
アノテーションを使用して、テスト済みアプリケーションの URL をTest
クラスのフィールドに直接インジェクトします。このフィールドには、タイプString
、URL
、またはURI
を使用できます。このアノテーションにテストパスを指定することもできます。たとえば、/myservlet
にマップされたサーブレットをテストするには、以下の行をテストに追加します。@TestHTTPResource("/myservlet") URL testUrl;
-
必要な場合は、
quarkus.http.test-port
設定プロパティーにテストポートを指定します。
Quarkus は、インジェクションを使用できない状況のベーステスト URL に設定される test.url
という名前のシステムプロパティーも作成します。
第7章 Quarkus Getting Started アプリケーションのパッケージ化および実行
Quarkus Getting Started プロジェクトをコンパイルしたら、JAR ファイルでパッケージ化し、コマンドラインから実行できます。
前提条件
- Quarkus Getting Started プロジェクトをコンパイルしている。
手順
Quarkus Getting Started プロジェクトをパッケージ化するには、
root
ディレクトリーで以下のコマンドを入力します。./mvnw package
このコマンドは、以下の JAR ファイルを
/target
ディレクトリーに生成します。-
getting-started-1.0-0-SNAPSHOT.jar
: プロジェクトのクラスおよびリソースが含まれます。これは、Maven ビルドで生成される通常のアーティファクトです。 getting-started-1.0-0-SNAPSHOT-runner.jar
: 実行可能な JAR ファイルです。依存関係はtarget/lib
ディレクトリーにコピーされるため、このファイルは uber-JAR ファイルではない点に注意してください。警告お使いのアプリケーションが開発モードで実行中の場合は、CTRL+C を押してアプリケーションを停止する必要があります。開発モードが有効な場合にアプリケーションをパッケージ化しようとすると、ポートの競合が発生します。
-
以下のコマンドを入力してアプリケーションを起動します。
java -jar target/getting-started-1.0-0-SNAPSHOT-runner.jar
注記runner
JAR ファイルからのMANIFEST.MF
ファイルのClass-Path
エントリーは、lib
ディレクトリーからの JAR ファイルを明示的に記述します。別の場所からアプリケーションをデプロイする場合は、runner
JAR ファイルとlib
ディレクトリーをコピーする必要があります。
第8章 code.quarkus.redhat.com を使用した Quarkus Maven プロジェクトの作成
アプリケーション開発者は、code.quarkus.redhat.com を使用して Quarkus Maven プロジェクトを生成し、アプリケーションで使用するエクステンションを自動的に追加および設定できます。さらに、code.quarkus.redhat.com は、プロジェクトをネイティブ実行可能ファイルにコンパイルするために必要な設定パラメーターを自動的に管理します。
本セクションでは、以下を含む Quarkus Maven プロジェクトを生成するプロセスについて説明します。
- アプリケーションの基本情報の指定
- プロジェクトに追加する機能拡張の選択
- プロジェクトファイルでダウンロード可能なアーカイブの生成
- アプリケーションのコンパイルおよび起動のカスタムコマンドの使用
前提条件
- Web ブラウザーがある。
手順
- Web ブラウザーを使用して https://code.quarkus.redhat.com に移動します。
プロジェクトの基本情報を指定します。
-
プロジェクトのグループ名を入力します。名前の形式は、Java パッケージ命名規則に従います (例:
org.acme
)。 -
プロジェクトから生成された Maven アーティファクトに使用する名前を入力します (例:
code-with-quarkus
)。 アプリケーションのコンパイルおよび起動に使用するビルドツールを選択します。選択するビルドツールにより、以下が決定されます。
- 生成されたプロジェクトのディレクトリー構造。
- 生成されたプロジェクトで使用される設定ファイルの形式。
アプリケーションをコンパイルおよび起動するためのカスタムビルドスクリプトおよびコマンド (プロジェクトの生成後に code.quarkus.redhat.com が表示)。
注記Red Hat は、code.quarkus.redhat.com を使用して Quarkus Maven プロジェクトのみを作成する際にサポートを提供します。Red Hat では、Gradle プロジェクトの生成はサポートしていません。
-
プロジェクトのグループ名を入力します。名前の形式は、Java パッケージ命名規則に従います (例:
アプリケーションプロジェクトに関する追加情報を指定します。
- Configure more options を選択し、追加のアプリケーションの詳細が含まれるフィールドを表示します。
-
プロジェクトから生成されたアーティファクトで使用されるバージョンを入力します。このフィールドのデフォルト値は
1.0.0-SNAPSHOT
です。semantic versioning の使用が推奨されますが、必要に応じて、別のタイプのバージョンを使用できます。 code.quarkus.redhat.com がサンプルコードをプロジェクトに追加するかどうかを選択します。エクステンションの一覧から
アイコンでマーク付けされたエクステンションをプロジェクトに追加する場合は、このオプションを有効にして、プロジェクトの生成時にこれらのエクステンションのクラスファイルおよびリソースファイルのサンプルを自動的に作成できます。サンプルコードを提供するエクステンションを追加しない場合、このオプションは生成されたプロジェクトには影響しません。
注記code.quarkus.redhat.com は、Red Hat ビルドの Quarkus の最新リリースを自動的に使用します。プロジェクトの生成後に、
pom.xml
ファイルで BOM バージョンを手動で変更できます。
エクステンションの一覧から、アプリケーションで使用するエクステンションを選択します。選択したエクステンションは、Quarkus アプリケーションの依存関係として含まれ、それらのバージョンは互換性を確保するために Quarkus プラットフォームによって管理されます。
このオプションを有効にすると、
アイコンでマーク付けされたエクステンションのサンプルコードを自動的に生成できます。
Red Hat は、一覧にある個別のエクステンションに対して さまざまなレベル のサポートを提供します。レベルは、各エクステンション名の横にあるラベルで示されています。
- SUPPORTED エクステンション: Red Hat は、実稼働環境でのエンタープライズアプリケーションでの使用に対して完全にサポートしています。
- TECH-PREVIEW 拡張: Red Hat は、テクノロジープレビュー機能のサポート範囲 に基づき、限定的に、実稼働環境でのサポートを提供します。
- DEV-SUPPORT エクステンション: Red Hat は、実稼働環境での使用をサポートしていません。ただし、新規アプリケーションの開発での使用に対しては、Red Hat 開発者がこれらのコア機能をサポートしています。
- Red Hat は、ラベル付けされていないエクステンションの実稼働環境での使用をサポートしていません。
DEPRECATED エクステンション: 同じ機能を提供する新しいテクノロジーまたは実装に置き換えられる予定です。
各エクステンションの横にあるオーバーフローメニュー (⋮) を展開して、以下を実行する追加オプションにアクセスできます。
- エクステンションを既存プロジェクトに追加する (コマンドラインで Quarkus Maven プラグインを使用)。
-
プロジェクトの
pom.xml
ファイルへエクステンションを追加するための XML スニペットをコピーする。 -
各エクステンションの
groupId
、artifactId
、およびversion
を取得する。 エクステンションガイドを開く。
- Generate your application を選択して選択内容を確認し、生成されたプロジェクトを含むアーカイブのダウンロードリンクのオーバーレイ画面を表示します。オーバーレイ画面には、アプリケーションのコンパイルおよび起動に使用できるカスタムコマンドも表示されます。
- Download the ZIP を選択して、生成されたプロジェクトファイルを含むアーカイブをマシンに保存します。
- アーカイブの内容を展開します。
展開したプロジェクトファイルが含まれるディレクトリーに移動します。
cd <directory_name>
開発モードでアプリケーションをコンパイルして起動します。
./mvnw compile quarkus:dev
第9章 関連情報
改訂日時: 2023-05-16