第3章 Getting Started プロジェクトの作成
getting-started プロジェクトでは、Apache Maven および Quarkus Maven プラグインを使用して、簡単な Quarkus アプリケーションを使い始めることができます。
手順
コマンドターミナルで以下のコマンドを入力し、Maven が JDK 11 を使用していること、そして Maven のバージョンが 3.6.3 以上であることを確認します。
mvn --version- 上記のコマンドで JDK 11 が返されない場合は、JDK 11 へのパスを PATH 環境変数に追加し、上記のコマンドを再度入力します。
プロジェクトを生成するには、以下のコマンドのいずれかを入力します。
注記Apple macOS および Microsoft Windows は、本番環境ではサポートされません。
Linux または Apple macOS を使用している場合は、以下のコマンドを入力します。
mvn io.quarkus:quarkus-maven-plugin:1.7.6.Final-redhat-00014:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -DplatformGroupId=com.redhat.quarkus \ -DplatformVersion=1.7.6.Final-redhat-00014 \ -DclassName="org.acme.quickstart.GreetingResource" \ -Dpath="/hello" cd getting-startedMicrosoft Windows のコマンドラインを使用している場合は、以下のコマンドを入力します。
mvn io.quarkus:quarkus-maven-plugin:1.7.6.Final-redhat-00014:create -DprojectGroupId=org.acme -DprojectArtifactId=getting-started -DplatformGroupId=com.redhat.quarkus -DplatformVersion=1.7.6.Final-redhat-00014 -DclassName="org.acme.quickstart.GreetingResource" -Dpath="/hello"Microsoft Windows Powershell を使用している場合は、以下のコマンドを入力します。
mvn io.quarkus:quarkus-maven-plugin:1.7.6.Final-redhat-00014:create "-DprojectGroupId=org.acme" "-DprojectArtifactId=getting-started" "-DplatformGroupId=com.redhat.quarkus" "-DclassName=org.acme.quickstart.GreetingResource" "-Dpath=/hello"これらのコマンドにより、
./getting-startedディレクトリーに以下の要素が作成されます。- Maven の構造
-
/helloで公開されるorg.acme.quickstart.GreetingResourceリソース - 関連するユニットテスト
-
アプリケーションの起動後に
http://localhost:8080でアクセス可能なランディングページ -
src/main/dockerのDockerfileファイルの例 - アプリケーション設定ファイル
ディレクトリー構造が作成されたら、テキストエディターで
pom.xmlファイルを開き、ファイルの内容を確認します。<dependencyManagement> <dependencies> <dependency> <groupId>com.redhat.quarkus</groupId> <artifactId>quarkus-universe-bom</artifactId> <version>${quarkus-plugin.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> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>${compiler-plugin.version}</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${surefire-plugin.version}</version> <configuration> <systemProperties> <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> </systemProperties> </configuration> </plugin> </plugins> </build>Quarkus BOM は
pom.xmlファイルにインポートされます。そのため、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"; } }このファイルには、Java API for RESTful Web Services (JAX-RS) のほか、
/helloへの要求に対してhelloを返す非常に簡単な REST エンドポイントが含まれます。注記Quarkus では、JAX-RS の
Applicationクラスはサポートされますが、必須ではありません。さらに、リクエストごとに 1 つのインスタンスが作成されるのではなく、GreetingResourceクラスのインスタンスが 1 つだけ作成されます。このインスタンスは、別の*Scopedアノテーションを使用して設定できます。たとえば、ApplicationScoped、RequestScopedなどを使用できます。