1.3. Camel Extensions for Quarkus を使用した最初のプロジェクトのビルド
1.3.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
code.quarkus.redhat.com を使用して Quarkus Maven プロジェクトを生成し、アプリケーションで使用するエクステンションを自動的に追加および設定できます。
本セクションでは、以下を含む Camel Extensions for Quarkus を使用して Quarkus Maven プロジェクトを作成するプロセスについて説明します。
- code.quarkus.redhat.com を使用したスケルトンアプリケーションの作成
- 簡単な Camel ルートの追加
- アプリケーションコードの使用
- 開発モードでのアプリケーションのコンパイル
- アプリケーションのテスト
1.3.2. スケルトンアプリケーションの生成 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトのブートストラップおよび生成は、code.quarkus.redhat.com から可能です。Camel Extensions for Quarkus 拡張機能は、見出し Integration の下にあります。
'search' フィールドを使用して、必要なエクステンションを見つけます。
使用するコンポーネントエクステンションを選択し、Generate your application ボタンをクリックして基本的なスケルトンプロジェクトをダウンロードします。また、プロジェクトを直接 GitHub にプッシュするオプションもあります。
code.quarkus.redhat.com を使用した Quarkus Maven プロジェクトの生成に関する詳細は、Quarkus スタートガイド の code.quarkus.redhat.com を使用した Quarkus Maven プロジェクトの作成 を参照してください。
手順
code.quarkus.redhat.com の Web サイトを使用して、この例の次のエクステンションを選択します。
-
camel-quarkus-rest camel-quarkus-jackson注記本書の一部としてこのタスクを実行するため、上記の手順の最終ステップに記載されているアプリケーションをコンパイルしないでください。
-
直前の手順で生成されたプロジェクトファイルを展開したディレクトリーに移動します。
cd <directory_name>
$ cd <directory_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.3. アプリケーションコードの使用 リンクのコピーリンクがクリップボードにコピーされました!
このアプリケーションには、 <dependencyManagement> でインポートされた com.redhat.quarkus.platform:quarkus-camel-bom 内で管理されるコンパイル依存関係が 2 つあります。
pom.xml
BOM 依存関係管理の詳細は、Camel Extensions for Quarkus を使用したアプリケーションの開発 を参照してください。
アプリケーションは、src/main/resources/application.properties 内で定義されたプロパティーで設定できます。たとえば、camel.context.name を設定できます。
1.3.4. 簡単な Camel ルートの追加 リンクのコピーリンクがクリップボードにコピーされました!
手順
-
src/main/java/org/acme/サブフォルダーにRoutes.javaという名前のファイルを作成します。 以下のコードスニペットのように Camel Rest ルートを追加します。
Routes.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.5. 開発モード リンクのコピーリンクがクリップボードにコピーされました!
mvn clean compile quarkus:dev
$ mvn clean compile quarkus:dev
このコマンドでは、プロジェクトのコンパイル、アプリケーションの起動、Quarkus ツールでのワークスペースの変更監視などを行います。プロジェクトの変更は自動的に実行中のアプリケーションに適用されます。
ブラウザーでアプリケーションを確認します (例:rest-json 例の http://localhost:8080/fruits)。
アプリケーションコードを変更する場合 (例: 'Apple' を 'Orange' に変更)、アプリケーションは自動的に更新されます。変更の適用を確認するには、ブラウザーを更新するだけです。
開発モードの詳細は、Quarkus のドキュメント を参照してください。
1.3.6. テスト リンクのコピーリンクがクリップボードにコピーされました!
1.3.6.1. JVM モード リンクのコピーリンクがクリップボードにコピーされました!
JVM モードで作成した Camel Rest ルートをテストするには、以下のようにテストクラスを追加します。
手順
-
src/test/java/org/acme/サブフォルダーにRoutesTest.javaという名前のファイルを作成します。 以下のコードスニペットのように
RoutesTestクラスを追加します。RoutesTest.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
JVM モードテストは、Maven フェーズで maven-surefire-plugin によって実行されます。
mvn clean test
$ mvn clean test
1.3.6.2. ネイティブモード リンクのコピーリンクがクリップボードにコピーされました!
ネイティブモードで作成した Camel Rest ルートをテストするには、以下のようにテストクラスを追加します。
手順
-
src/test/java/org/acme/サブフォルダーにNativeRoutesIT.javaという名前のファイルを作成します。 以下のコードスニペットのように
NativeRoutesITクラスを追加します。NativeRoutesIT.java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ネイティブモードテストは、verify フェーズで maven-failsafe-plugin を使用して検証されます。ネイティブ プロパティーを指定して、テストを実行するプロファイルをアクティベートします。
mvn clean verify -Pnative
$ mvn clean verify -Pnative
1.3.7. アプリケーションのパッケージ化および実行 リンクのコピーリンクがクリップボードにコピーされました!
1.3.7.1. JVM モード リンクのコピーリンクがクリップボードにコピーされました!
mvn パッケージ は、ストック JVM で実行するためにシン形式の jar を作成します。
mvn clean package ls -lh target/quarkus-app
$ mvn clean package
$ ls -lh target/quarkus-app
...
-rw-r--r--. 1 user user 238K Oct 11 18:55 quarkus-run.jar
...
これは、以下のように実行できます。
java -jar target/quarkus-app/quarkus-run.jar
$ java -jar target/quarkus-app/quarkus-run.jar
...
[io.quarkus] (main) Quarkus started in 1.163s. Listening on: http://[::]:8080
起動時間の周りに 2 回目に着目することに注意してください。
シン形式の jar にはアプリケーションコードのみが含まれます。これを実行するには、target/quarkus-app/lib の依存関係も必要です。
1.3.7.2. ネイティブモード リンクのコピーリンクがクリップボードにコピーされました!
ネイティブ実行可能ファイルの準備に関する追加情報は、Quarkus アプリケーションのネイティブ実行可能ファイルへのコンパイルガイドの ネイティブ実行可能ファイルの作成 を参照してください。
ネイティブ実行可能ファイルを作成するには、以下のコマンドを実行します。
mvn clean package -Pnative ls -lh target
$ mvn clean package -Pnative
$ ls -lh target
...
-rwxr-xr-x. 1 user user 46M Oct 11 18:57 code-with-quarkus-1.0.0-SNAPSHOT-runner
...
上記の一覧の ランナー には .jar 拡張がなく、x (実行可能) パーミッションが設定されていることに注意してください。そのため、以下を直接実行できます。
./target/*-runner
$ ./target/*-runner
...
[io.quarkus] (main) Quarkus started in 0.013s. Listening on: http://[::]:8080
...
アプリケーションはたった 13 ミリ秒以内に起動していることに注意してください。メモリーを効率的に処理する方法を確認するには、以下のコマンドを入力します。
ps -o rss,command -p $(pgrep code-with)
$ ps -o rss,command -p $(pgrep code-with)
RSS COMMAND
65852 ./target/code-with-quarkus-1.0.0-SNAPSHOT-runner
上記の例では、アプリケーションは 65 MB のメモリーのみを使用します。
Quarkus ネイティブの実行可能ガイド には、コンテナーイメージを作成する手順 などの詳細情報が記載されています。