Quarkus でコーディングを開始するための新しい方法のプレビュー

Red Hat で Solution Architect として Quarkus を担当している伊藤ちひろ(@chiroito)です。

この記事は、Quarkus.io のブログ記事、Preview the new way to start coding with Quarkus の翻訳記事です。

Maven プラグインや code.quarkus.io を使って Quarkus プロジェクトを生成したことがありますか?

もしそうであれば、なぜ Quarkus の拡張機能の幅が広いのに、REST API のサンプルアプリケーションしか生成できないのかと疑問に思ったかもしれません。もちろん、アプリの依存関係になる拡張機能を選べます。 拡張機能の中には、余分なコードなしで新しい機能を提供しているものもあるので、これはとてもクールです。しかし、いくつかの拡張機能は動作するために設定やコードを必要とし、かなり限定的なものになっています。

新しいコード生成システムの導入

というわけで、Quarkus 1.7.0.Final の新しいコード生成システムのプレビューをご紹介することにワクワクしています。それは Codestarts といいます。アイデアは簡単です。あなたはあなたの拡張機能を選択し、それらはあなたが始めるためのコード例を提供できます。

このプレビュー版は、まだ始まったばかりで、3つの Codestarts の例が含まれています。

  • RESTEasy 拡張機能を選択したときのJava、Kotlin、Scala での伝説的な RESTEasy の例
  • Qute 拡張機能を選択した時の、Java の可愛くて甘いテンプレートエンジン Qute
  • あなたが例を提供する任意の拡張機能を選択しない場合、Java の強固で強力な Quarkus コマンドモード

試しにやってみる?

アプリケーションを作成するための Quarkus Maven プラグインに機能フラグを追加しました。

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled`

ビルドツールとして Maven を使用したコマンドモードの Quarkus プロジェクト

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled \
-DprojectGroupId=org.acme -DprojectArtifactId=go-go-commando
cd go-go-commando
# Windows での./mvnw.cmd
./mvnw package
java -jar target/go-go-commando-1.0-SNAPSHOT-runner.jar

前回と同様でビルドツールとして Gradle を使用

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled \
-DprojectGroupId=org.acme -DprojectArtifactId=go-go-commando-gradle \
-DbuildTool=GRADLE
cd go-go-commando-gradle
# Windows での ./gradlew.bat
./gradlew build
java -jar build/go-go-commando-gradle-1.0-SNAPSHOT-runner.jar

RESTEasy と Qute の例で Kotlin の Quarkus プロジェクト

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled \
-DprojectGroupId=org.acme -DprojectArtifactId=kotlin-with-rest-is-qute \
-Dextensions=kotlin,resteasy,qute
cd kotlin-with-rest-is-qute
# Windows での./mvnw.cmd
./mvnw quarkus:dev

Scala で SmallRye リアクティブメッセージング Kafka と空の Quarkus プロジェクト

mvn io.quarkus:quarkus-maven-plugin:create -DcodestartsEnabled \
-DprojectGroupId=org.acme -DprojectArtifactId=scala-kafka \
-Dextensions=scala,quarkus-smallrye-reactive-messaging-kafka \
-DskipExample
cd scala-kafka
# Windows での./mvnw.cmd
./mvnw quarkus:dev

新しいプロジェクトの README.md に、(選択した拡張機能とビルドツールに関連した)説明を追加しました。

お気に入りのツール/拡張機能を使用して、空白の Quarkus アプリケーションを起動

Codestarts でも大きな改善点を導入しています 😅 笑ってはいけませんが、これはコミュニティからの正当な要求だったのです。Codestarts を使うと、-DskipExample を追加することで空白の Quarkus アプリを生成できます。

Codestarts に欠けているいくつかの機能に気づくかも

  1. 生成された例のパッケージ名は org.acme に固定されています。カスタマイズできるようにしてもあまり意味がないと思っていたのですが、損だと思ったら教えてください。
  2. プロジェクトには複数の例が含まれるので、競合を避けなければなりません。これが、アプリでRESTパスを定義できなくなった理由です。

バグを募集中

Codestarts は安定化のために Quarkus 1.7.x ではまだプレビューモードになっています。できるだけ早くデフォルトの動作にしたいと思っています。だから、それを試してみて、あなたがバグを見つけたら報告してください:-)

Codestarts の例に貢献

拡張機能を持っていて、その拡張機能の Codestarts を提供したい場合

ご質問やご提案がございましたら、ZulipQuarkus Development のメーリングリストからお気軽にお問い合わせください。

ここでは、Codestarts のコアコードと、Quarkus アプリケーションを足場にするために使用される Codestarts 基盤をご紹介した。

果てしなく新しい遊び場への扉が開きました

次の Quarkus リリースに向けて、すでに新しい Codestarts を準備しています。そして、自分だけの個人/会社の Codestarts を使うことができるとしたらどうでしょうか?続く...

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。