NetBeansからQuarkusを使う

Quarkusです、Quarkus。

Mavenのアップデート

QuarkusのビルドにはMaven 3.5.3が必要ですが、NetBeans11にバンドルされているMavenは3.3.9なので、そのままではビルドなどができません。
ということで、Mavenの最新版をダウンロードしてどこかに解凍します。
Maven – Download Apache Maven

そしたら、PreferenceのJavaタブでMavenを選んでMavenを解凍したパスを設定します。
f:id:nowokay:20190615014520p:plain

プロジェクトの作成

残念ながら、GUIからのプロジェクト作成は できなさそう。なので、ドキュメント通りにコマンドラインでプロジェクト生成します。

$ mvn io.quarkus:quarkus-maven-plugin::create

そうするとArtifact IDなどを聞かれてくるので、適当に入力していきます。 (もちろん空のMavenやGradleプロジェクトを作成してビルドファイルを編集すれば、プロジェクト作れます。)

※ 6/29追記
0.18.0でネイティブコンパイルがGraalVM 19に対応しました。プロジェクト作成時にバージョンを明示しておく必要があります。

$ mvn io.quarkus:quarkus-maven-plugin:0.18.0:create

実行用Goalの設定

開発時のプロジェクト実行にはquarkus:dev:というGoalを使う必要があります。そのままではNetBeansのメニューからのプロジェクト実行ができません。
なので、プロジェクト実行時に実行されるGoalを指定します。

プロジェクトのプロパティからActionsを選んでRun ProjectのExecute Goalsにquarkus:dev:を指定します。 またSet Propertiesのところにexec.argsでclasspathが指定してあるので、この行は削除しておきます。 f:id:nowokay:20190615015617p:plain

そうすると[F6]などでプロジェクトが実行できるようになります。 f:id:nowokay:20190615020021p:plain

Native Imageの作成

ついでにNative Imageを作れるようにしましょう。
現時点ではGraalVMの最新であるバージョン19ではなく、ひとつ前のRC16が必要です。
Release GraalVM Community Edition 1.0 RC16 · oracle/graal
※ 6/29追記 0.18.0からGraalVM 19に対応しています。

必須ではないですがJavaプラットフォームとして登録しておきましょう。 f:id:nowokay:20190615020438p:plain

Build->Compileでプロジェクトのプラットフォームとして指定しておくのが無難です。 f:id:nowokay:20190615020551p:plain

ActionsでAdd Customを選んでNativeを追加します。(別の名前でもいいです) f:id:nowokay:20190615020852p:plain

Execute Goalsにpackage -Pnativeを指定します。また、GRAALVM_HOMEを指定しておく必要があります。
※ 7/15追記 0.19ではGRAALVM_HOMEが不要になっています。
f:id:nowokay:20190615020739p:plain

Use JDK for Maven Buildを使うとJAVA_HOMEが埋め込まれるので、それをGRAALVM_HOMEに書き換えるのが楽です。
f:id:nowokay:20190615021549p:plain

そうするとプロジェクトメニューのRun MavenにNativeが追加されるので、ここからNative Imageが作成できるようになります。
f:id:nowokay:20190615021720p:plain

1分ちょっとかかってNative Imageのビルドができました!
f:id:nowokay:20190615021805p:plain