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 に欠けているいくつかの機能に気づくかも
- 生成された例のパッケージ名は
org.acme
に固定されています。カスタマイズできるようにしてもあまり意味がないと思っていたのですが、損だと思ったら教えてください。 - プロジェクトには複数の例が含まれるので、競合を避けなければなりません。これが、アプリでREST
パス
を定義できなくなった理由です。
バグを募集中
Codestarts は安定化のために Quarkus 1.7.x ではまだプレビューモードになっています。できるだけ早くデフォルトの動作にしたいと思っています。だから、それを試してみて、あなたがバグを見つけたら報告してください:-)
Codestarts の例に貢献
拡張機能を持っていて、その拡張機能の Codestarts を提供したい場合
- Doc: https://github.com/quarkusio/quarkus/blob/master/independent-projects/tools/codestarts/codestarts.adoc
- Codestarts の例 dir: https://github.com/quarkusio/quarkus/tree/master/devtools/platform-descriptor-json/src/main/resources/codestarts
ご質問やご提案がございましたら、Zulip や Quarkus Development のメーリングリストからお気軽にお問い合わせください。
ここでは、Codestarts のコアコードと、Quarkus アプリケーションを足場にするために使用される Codestarts 基盤をご紹介した。
果てしなく新しい遊び場への扉が開きました
次の Quarkus リリースに向けて、すでに新しい Codestarts を準備しています。そして、自分だけの個人/会社の Codestarts を使うことができるとしたらどうでしょうか?続く...