1.4. Getting Started プロジェクトの作成
getting-started
プロジェクトを作成すると、単純な Quarkus アプリケーションを起動して実行できます。getting-started
プロジェクトは、次のいずれかの方法で作成できます。
- Apache Maven と Quarkus Maven プラグインを使用する
- code.quarkus.redhat.com を使用して Quarkus Maven プロジェクトを生成する
- Quarkus コマンドラインインターフェイス (CLI) を使用する
前提条件
- 環境の準備が完了している。詳細は、環境の準備 を 参照してください。
手順
-
要件に応じて、
getting-started
プロジェクトの作成に使用する方法を選択します。
1.4.1. Apache Maven を使用して Getting Started プロジェクトを作成する
Apache Maven と Quarkus Maven プラグインを使用して、getting-started
プロジェクトを作成できます。この getting-started
プロジェクトを使用して、単純な Quarkus アプリケーションを起動して実行できます。
前提条件
- Apache Maven を使用するための環境を準備している。詳細は、環境の準備 を 参照してください。
Quarkus Maven リポジトリーを設定している。Maven を使用して Quarkus アプリケーションを作成するには、Red Hat がホストする Quarkus リポジトリーを使用するか、Quarkus Maven リポジトリーをダウンロードして設定できます。
- Red Hat がホストする Quarkus リポジトリーを使用する場合は、オンラインリポジトリーの Maven settings.xml ファイルの設定 を参照し てください。
- Maven を使用して Quarkus アプリケーションを作成するように Quarkus Maven リポジトリーを設定する場合は、Quarkus Maven リポジトリーの設定 を 参照してください。
手順
Maven が OpenJDK 11 または 17 を使用していることを確認するには、Maven のバージョンが 3.8.x (x は 6 以降)で、
mvn
が PATH 環境変数からアクセスできることを確認するには、以下のコマンドを入力します。mvn --version
- 前のコマンドで OpenJDK 11 または 17 が返されない場合は、OpenJDK 11 または 17 へのパスを PATH 環境変数に追加し、前のコマンドを再度入力します。
プロジェクトをビルドするには、以下のコマンドのいずれか 1 つを実行します。
注記Apple macOS および Microsoft Windows は開発者環境としてサポートされますが、実稼働環境ではサポートされません。
Linux または Apple macOS を使用している場合は、以下のコマンドを入力します。
mvn com.redhat.quarkus.platform:quarkus-maven-plugin:2.13.9.SP2-redhat-00003:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -DplatformGroupId=com.redhat.quarkus.platform \ -DplatformVersion=2.13.9.SP2-redhat-00003 \ -DclassName="org.acme.quickstart.GreetingResource" \ -Dpath="/hello" cd getting-started
Microsoft Windows のコマンドラインを使用している場合は、以下のコマンドを入力します。
mvn com.redhat.quarkus.platform:quarkus-maven-plugin:2.13.9.SP2-redhat-00003:create -DprojectGroupId=org.acme -DprojectArtifactId=getting-started -DplatformGroupId=com.redhat.quarkus.platform -DplatformVersion=2.13.9.SP2-redhat-00003 -DclassName="org.acme.quickstart.GreetingResource" -Dpath="/hello"
Microsoft Windows Powershell を使用している場合は、以下のコマンドを入力します。
mvn com.redhat.quarkus.platform:quarkus-maven-plugin:2.13.9.SP2-redhat-00003:create "-DprojectGroupId=org.acme" "-DprojectArtifactId=getting-started" "-DplatformVersion=2.13.9.SP2-redhat-00003" "-DplatformGroupId=com.redhat.quarkus.platform" "-DclassName=org.acme.quickstart.GreetingResource" "-Dpath=/hello"
これらのコマンドにより、
./getting-started
ディレクトリーに以下の要素が作成されます。- Maven プロジェクトディレクトリー構造
-
/hello
で公開されるorg.acme.quickstart.GreetingResource
リソース - ネイティブモードおよび JVM モードでアプリケーションをテストするための関連するユニットテスト
-
アプリケーションの起動後に
http://localhost:8080
でアクセス可能なランディングページ -
src/main/docker
ディレクトリー内のサンプル Dockerfile - アプリケーションの設定ファイル
ディレクトリー構造が作成されたら、テキストエディターで
pom.xml
ファイルを開き、ファイルの内容を確認します。pom.xml
<project> ... <properties> ... <quarkus.platform.group-id>com.redhat.quarkus.platform</quarkus.platform.group-id> <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.version>2.13.9.SP2-redhat-00003</quarkus.platform.version> ... </properties> ... <dependencyManagement> <dependencies> <dependency> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>${quarkus.platform.artifact-id}</artifactId> <version>${quarkus.platform.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ... <build> ... <plugins> ... <plugin> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>quarkus-maven-plugin</artifactId> <version>${quarkus.platform.version}</version> <extensions>true</extensions> <executions> <execution> <goals> <goal>build</goal> <goal>generate-code</goal> <goal>generate-code-tests</goal> </goals> </execution> </executions> </plugin> ... </plugins> ... </build> ... </project>
pom.xml
ファイルの<dependencyManagement>
セクションには、Quarkus BOM が格納されています。そのため、pom.xml
ファイルに個別の Quarkus 依存関係のバージョンを記述する必要はありません。pom.xml
ファイルでは、アプリケーションのパッケージ化を行うquarkus-maven-plugin
プラグインを見つけることもできます。pom.xml
ファイル内のquarkus-resteasy-reactive
依存関係を確認します。この依存関係により、REST アプリケーションを開発できます。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-reactive</artifactId> </dependency>
src/main/java/org/acme/quickstart/GreetingResource.java
ファイルを確認します。import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; {CompanyName} @Path("/hello") public class GreetingResource { @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return "Hello from RESTEasy Reactive"; } }
このファイルには、
/hello
エンドポイントに送信するリクエストへの応答としてhello
を返す単純な REST エンドポイントが含まれます。注記Quarkus では、JAX-RS の
Application
クラスはサポートされますが、必須ではありません。さらに、リクエストごとに 1 つのインスタンスが作成されるのではなく、GreetingResource
クラスのインスタンスが 1 つだけ作成されます。これは、別の*Scoped
アノテーション (例:ApplicationScoped
、RequestScoped
など) を使用して設定できます。
1.4.2. code.quarkus.redhat.com を使用して Getting Started プロジェクトを作成する
アプリケーション開発者は、code.quarkus.redhat.com を使用して Quarkus Maven プロジェクトを生成し、アプリケーションで使用するエクステンションを自動的に追加および設定できます。さらに、code.quarkus.redhat.com は、プロジェクトをネイティブ実行可能ファイルにコンパイルするために必要な設定パラメーターを自動的に管理します。
次のアクティビティーを含む Quarkus Maven プロジェクトを生成できます。
- アプリケーションの基本情報の指定
- プロジェクトに追加するエクステンションの選択
- プロジェクトファイルのダウンロード可能なアーカイブの生成
- アプリケーションをコンパイルおよび起動するカスタムコマンドの使用
前提条件
- Web ブラウザーがある。
- で説明されているように、Apache Maven を使用するための環境を準備している。
Quarkus Maven リポジトリーを設定している。Red Hat がホストする Quarkus リポジトリーを使用するか、Quarkus Maven リポジトリーをダウンロードして設定して、Maven で Quarkus アプリケーションを作成できます。
- Red Hat がホストする Quarkus リポジトリーを使用するには、オンラインリポジトリーの Maven settings.xml ファイルの設定 を参照し てください。
- Maven を使用して Quarkus アプリケーションを作成するように Quarkus Maven リポジトリーを設定するには、Quarkus Maven リポジトリーの設定 を 参照してください。
- オプション: Quarkus コマンドラインインターフェイス(CLI)をインストールしている。これは、開発モードで Quarkus を開始するために使用できる方法の 1 つです。
詳細は、Quarkus CLI のインストール を参照し てください。
Quarkus CLI は、開発モードのみを対象としています。Red Hat は、実稼働環境での Quarkus CLI の使用をサポートしません。
手順
- Web ブラウザーで、https://code.quarkus.redhat.com に移動します。
プロジェクトの基本情報を指定します。
-
プロジェクトのグループ名を入力します。名前形式は、Java パッケージの命名規則に従います(例:
org.acme
)。 -
プロジェクトから生成された Maven アーティファクトに使用する名前を入力します(例:
code-with-quarkus
)。 アプリケーションのコンパイルおよび起動に使用するビルドツールを選択します。選択したビルドツールにより、次の設定が決まります。
- 生成されたプロジェクトのディレクトリー構造。
- 生成したプロジェクトで使用される設定ファイルのフォーマット
プロジェクトの生成後に code.quarkus.redhat.com に表示される、アプリケーションのコンパイルと起動のためのカスタムビルドスクリプトおよびコマンド
注記Red Hat は、Quarkus Maven プロジェクトを作成する場合にのみ code.quarkus.redhat.com の使用をサポートします。
-
プロジェクトのグループ名を入力します。名前形式は、Java パッケージの命名規則に従います(例:
アプリケーションプロジェクトに関する追加情報を指定します。
- アプリケーションの詳細を含むフィールドを表示するには、More options を選択します。
-
プロジェクトから生成されるアーティファクトに使用するバージョンを入力します。このフィールドのデフォルト値は
1.0.0-SNAPSHOT
です。semantic versioning の使用が推奨されます。ただし、別のタイプのバージョン管理を指定することもできます。 code.quarkus.redhat.com がスターターコードをプロジェクトに追加するかどうかを選択します。CODEでマークされたエクステンションをプロジェクトに追加する場合、このオプションを有効にして、プロジェクトの生成時にこれらのエクステンションのクラスおよびリソースファイルのサンプルを自動的に作成できます。ただし、サンプルコードを提供するエクステンションを追加しない場合、このオプションは生成されたプロジェクトには影響しません。
注記code.quarkus.redhat.com リポジトリーは、Red Hat ビルドの Quarkus の最新リリースを自動的に使用します。プロジェクトの生成後に、
pom.xml
ファイルで BOM バージョンを手動で変更できます。使用するエクステンションを選択します。選択したエクステンションは、Quarkus アプリケーションの依存関係として含まれています。Quarkus プラットフォームは、これらのエクステンションが将来のバージョンと互換性があることも確認します。
重要RESTEasy
エクステンションとRESTEasy Reactive
エクステンションは、同じプロジェクト内で使用しないでください。エクステンションの横にある quark アイコン ( ) は、そのエクステンションが Red Hat build of Quarkus プラットフォームリリースの一部であることを示します。Red Hat は、同じプラットフォームの拡張機能を一緒にテストおよび検証しているため、使用することを推奨します。したがって、使用とアップグレードが容易であるからです。
このオプションを有効にすると、STARTER-CODE のマークが付いたエクステンションのスターターコードを自動的に生成できます。
選択を確認するには、Generate your application を選択します。次の項目が表示されます。
- 生成されたプロジェクトを含むアーカイブをダウンロードするためのリンク
- アプリケーションをコンパイルして起動するために使用できるカスタムコマンド
- 生成されたプロジェクトファイルを含むアーカイブをマシンに保存するには、Download the ZIP を選択します。
- アーカイブの内容をデプロイメントします。
展開したプロジェクトファイルが含まれるディレクトリーに移動します。
cd <directory_name>
開発モードでアプリケーションをコンパイルおよび起動するには、以下のいずれかの方法を使用します。
Maven の使用:
./mvnw quarkus:dev
Quarkus CLI を使用する:
quarkus dev
1.4.2.1. Quarkus エクステンションのサポートレベル
Red Hat は、code.quarkus.redhat.com で入手して Quarkus プロジェクトに追加できるエクステンションにたいして、さまざまなレベル のサポートを提供しています。各エクステンションの名前の横にあるラベルは、サポートレベルを示します。
Red Hat は、ラベルのないエクステンションの実稼働環境での使用はサポートしません。
Quarkus は、Quarkus エクステンション向けに Quarkus によって提供される .Support レベル のサポートを提供します。
サポートレベル | 説明 |
---|---|
SUPPORTED | Red Hat は、実稼働環境のエンタープライズアプリケーションにおけるエクステンションの使用に対し、フルサポートを提供します。 |
TECH-PREVIEW | Red Hat は、テクノロジープレビュー機能のサポート範囲 に基づき、実稼働環境におけるエクステンションの使用に対して限定的なサポートを提供します。 |
DEV-SUPPORT | Red Hat は、実稼働環境におけるエクステンションの使用をサポートしませんが、Red Hat 開発者が新規アプリケーションの開発で使用するために提供するコア機能をサポートします。 |
DEPRECATED | Red Hat は、エクステンションを同じ機能を提供する最新のテクノロジーまたは実装に置き換える予定です。 |
STARTER-CODE | エクステンションのサンプルコードを自動生成できます。 |
各エクステンションの横にある矢印アイコン (⌄) をクリックすると、オーバーフローメニューを展開して、そのエクステンションの他のアクションにアクセスできます。以下に例を示します。
- コマンドラインで Quarkus Maven プラグインを使用して、既存のプロジェクトにエクステンションを追加します。
-
プロジェクトの
pom.xml
ファイルにエクステンションを追加するために、XML の抜粋をコピーします。 -
各エクステンションの
groupId
、artifactId
、version
を取得します。 - エクステンションガイドを開きます。
1.4.3. Quarkus CLI を使用した Getting Started プロジェクトの作成
Quarkus コマンドラインインターフェイス (CLI) を使用して、getting-started
プロジェクトを作成できます。
Quarkus CLI を使用して、プロジェクトの作成、エクステンションの管理、ビルドおよび開発コマンドの実行を行えます。
Quarkus CLI は、開発モードのみを対象としています。Red Hat は、実稼働環境での Quarkus CLI の使用をサポートしません。
前提条件
- Quarkus CLI がインストールされている。詳細は、環境の準備 を 参照してください。
- Quarkus 開発者ツールを、エクステンションレジストリー内のエクステンションにアクセスするように設定している。詳細は、Quarkus エクステンションレジストリークライアントの設定 を参照してください。
手順
プロジェクトを生成するには、コマンドターミナルで次のコマンドを入力します。
quarkus create && cd code-with-quarkus
注記'app' サブコマンド (例:
quarkus create app)
を指定することもできます。ただし、'app' サブコマンドが指定されていない場合は暗黙的に指定されるため、必須ではありません。このコマンドを使用すると、Quarkus プロジェクトが現在の作業ディレクトリーの 'code-with-quarkus' というフォルダーに作成されます。
デフォルトでは、
groupId
属性、artifactId
属性、version
属性は次のデフォルト値に指定されます。- groupId='org.acme'
- artifactId='code-with-quarkus'
version='1.0.0-SNAPSHOT'
groupId
、artifactId
、およびversion
属性の値を変更するには、quarkus create
コマンドを発行し、CLI で次の構文を指定します。groupId:artifactId:version
たとえば
quarkus create app mygroupId:myartifactid:version
です。
注記使用可能なすべての Quarkus コマンドに関する情報を表示するには、
help
パラメーターを指定します。quarkus --help
テキストエディターで
src/main/java/org/acme/GreetingResource.java
ファイルを確認します。package org.acme; 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 from RESTEasy Reactive"; } }
このファイルには、
/hello
エンドポイントに送信するリクエストへの応答としてhello
を返す単純な REST エンドポイントが含まれます。
検証
- 開発モードでアプリケーションをコンパイルして起動します。
- Quarkus CLI から Getting Started プロジェクトをパッケージ化して実行します。