QuarkusのWebサイトをふと見て、
ヘッダーに、「START CODING」というものができていることに気づきまして。
こちらを選択すると、「https://code.quarkus.io/」というサイトへ移ります。
Quarkus - Start coding with code.quarkus.io
どうやら、プロジェクトに必要なQuarkus Extensionを選び、プロジェクトの雛形を作成するサイトのようです。
Spring InitializrやMicroProfile Starterみたいな感じがしますね。
「https://code.quarkus.io/」のソースコードはこちら。
GitHub - quarkusio/code.quarkus.io: Code Quarkus - Start coding with Quarkus
選択できるExtensionの一覧は、こちらの模様。
https://github.com/quarkusio/code.quarkus.io/blob/master/src/main/resources/quarkus/extensions.json
Quarkusのサイトで、「START CODING」があった位置には、「Extensions」という拡張機能がリストアップされたページがリンクされて
いました。
こちらが置き換わった感じですね。
https://github.com/quarkusio/quarkusio.github.io/commit/5784264d94c840f10b6da73d0a39568966537bae
「START CODING」のページでは、作成するプロジェクトの情報を入力したり
利用するExtensionを選択したり
Extensionを絞り込むために、テキストフィールドを活用したりできます。
最後に、「Generate your application」というボタンを押すと、zipファイルのダウンロードが始まります。
また、この時、裏側でダイアログが起動しているので、こちらのリンクからzipファイルをダウンロードすることもできます。
ただ、「×」を押してこのダイアログを閉じると、入力した情報がリセットされるので注意してくださいね。
※「Start a new application」を選んだ場合と同じ
引き続き、同じプロジェクトの情報を扱う場合は「Go back」を選びましょう。
リンクを見ればなんとなく予想はつきますが、ここまで入力した情報をcurlなどで取得することもできそうです。
$ curl -o quarkus-example.zip 'https://code.quarkus.io/api/download?g=org.littlewings&a=quarkus-example&v=0.0.1-SNAPSHOT&c=org.littlewings.ExampleResource&e=io.quarkus%3Aquarkus-resteasy-jackson&e=io.quarkus%3Aquarkus-hibernate-orm'
今回は、RESTEasy Jacksonと、Hibernate ORMを選択しました。
ところで、以下のようにQuarkus Maven Pluginでプロジェクトを作った場合と、なにか違いはあるのでしょうか?試してみました。
$ mvn io.quarkus:quarkus-maven-plugin:0.21.2:create \ -DprojectGroupId=org.littlewings \ -DprojectArtifactId=quarkus-example \ -DprojectVersion=0.0.1-SNAPSHOT \ -Dextensions="resteasy-jackson,hibernate-orm"
propertiesの順番と、依存関係の順番(hibernate-orm、resteasy-jackson)が異なるくらいでした。
こちらはQuarkus Maven Pluginで作ったもの。
<properties> <surefire-plugin.version>2.22.0</surefire-plugin.version> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> <quarkus.version>0.21.2</quarkus.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>
「START CODING」ページで作ったもの。
<properties> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <surefire-plugin.version>2.22.0</surefire-plugin.version> <quarkus.version>0.21.2</quarkus.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
あくまで順番だけなので、pom.xmlの意味としてはどちらを選んでも変わらないようです。
あとは、「START CODING」ページで作った方のプロジェクトでは、以下のソースコードがついてきました。
src/main/java/org/littlewings/ExampleResource.java src/test/java/org/littlewings/ExampleResourceTest.java src/test/java/org/littlewings/NativeExampleResourceIT.java
Quakurs Maven Pluginでいう、classNameおよびpath(中身を見たら、「/hello」でした)を固定で指定して作成した感じみたいですね。
なんとなく見つけてみたので、試してみました、と。