The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

Quarkus コマンドラインインターフェイス (CLI) を使用した Quarkus アプリの構築

quarkus コマンドを使用すると、プロジェクトを作成し、エクステンションを管理し、基盤となるプロジェクトビルドツールを使用して重要なビルドおよび開発コマンドを実行できます。

この技術は、previewと考えられています。

preview では、下位互換性やエコシステムでの存在は保証されていません。具体的な改善には設定や API の変更が必要になるかもしれませんが、 stable になるための計画は現在進行中です。フィードバックは メーリングリストGitHub の課題管理 で受け付けています。

とりうるステータスの完全なリストについては、 FAQの項目 を参照してください。

CLI のインストール

Quarkus CLI は、以下のようないくつかの開発者向けのパッケージマネージャーで利用できます。

これらのツールのいずれかをすでに使用している (または使用したい) 場合、これは Quarkus CLI をインストールして最新の状態に保つ最も簡単な方法です。

これらのパッケージマネージャーに加えて、Quarkus CLI は JBang からもインストールできます。最も実用的な方法を選択してください。

  • JBang - Linux、macOS、および Windows 向け

  • SDKMAN! - Linux および macOS 向け

  • Homebrew - Linux および macOS 向け

  • Chocolatey - Windows 向け

  • Scoop - Windows 向け

JBang

Quarkus CLI は、 JBang を使用してインストール可能な jar として利用できます。

JBang は、既存の Java を使用するか、必要に応じて Java をインストールします。

Linux、macOS、および Windows (WSL または Cygwin や MinGW などの bash 互換シェルを使用) の場合

curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/
curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio

Powershell を使用する Windows の場合:

iex "& { $(iwr https://ps.jbang.dev) } trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/"
iex "& { $(iwr https://ps.jbang.dev) } app install --fresh --force quarkus@quarkusio"

JBang がすでにインストールされている場合は、直接使用できます。

# This can also be used to update to the latest version
jbang app install --fresh --force quarkus@quarkusio

特定のバージョンを使用したい場合は、直接バージョンを指定することができます。

# Create an alias in order to use a specific version
jbang app install --name qs2.2.5 io.quarkus:quarkus-cli:2.2.5.Final:runner

Quarkus をローカルでビルドしている場合は、そのバージョンを使用できます。

# Use the latest (or locally built) snapshot (with qss as an alias)
jbang app install --force --name qss ~/.m2/repository/io/quarkus/quarkus-cli/999-SNAPSHOT/quarkus-cli-999-SNAPSHOT-runner.jar

インストールされると、quarkus$PATH にあり、quarkus --version を実行すると、インストールされているバージョンが出力されます。

quarkus --version
2.14.2.Final
最近の JBang バージョンを使用する

app が読み取れないというエラーが発生した場合は、v0.56.0 より古いバージョンの JBang がインストールされている可能性があります。削除するか、最新バージョンにアップグレードしてください。

JBang を初めてインストールする場合は、新しいセッションを開始して PATH を更新してください。

SDKMAN!

SDKMAN! を使用して、開発環境を管理できます。ほとんどの Unix ベースのシステムで複数のソフトウェア開発キットの並列バージョンを管理できるため、複数の JDK バージョンを便利に使う場合に非常に良い代替手段となります。

SDKMAN! を使用すると、Quarkus CLI などの一般的な Java ツールをインストールすることもできます。

Quarkus CLI をインストールする前に、https://sdkman.io/jdks[a JDK installed] がインストールされていることを確認してください。

使用可能な Java のバージョンを一覧表示するには、sdk list java を使用します。続いて、sdk install java x.y.z-open (または、必要に応じて別のベンダーの JDK) を使用して、必要なバージョンの OpenJDK をインストールできます。

SDKMAN! を使用して Quarkus CLI をインストールするには、次のコマンドを実行します。

sdk install quarkus

Quarkus CLI の最新バージョンがインストールされます。

インストールされると、quarkus$PATH にあり、quarkus --version を実行すると、インストールされているバージョンが出力されます。

quarkus --version
2.14.2.Final

SDKMAN! は、新しいバージョンが利用可能になると通知するので、更新は簡単です。

sdk upgrade quarkus
Homebrew

Homebrew は、macOS (および Linux) 向けのパッケージマネージャーです。

Homebrew を使用して、Quarkus CLI をインストール (および更新) できます。

Quarkus CLI をインストールする前に、JDK がインストールされていることを確認してください。お好みの JDK バージョンを使用できるようにするため、明示的な依存関係は追加していません。

You can install a JDK with brew install openjdk for the latest Java version, brew install openjdk@17 for Java 17, or brew install openjdk@11 for Java 11.

Homebrew を使用して Quarkus CLI をインストールするには、次のコマンドを実行します。

brew install quarkusio/tap/quarkus

Quarkus CLI の最新バージョンがインストールされます。このコマンドを使用して、Quarkus CLI を更新することもできます。

インストールされると、quarkus$PATH にあり、quarkus --version を実行すると、インストールされているバージョンが出力されます。

quarkus --version
2.14.2.Final

以下の方法で、Quarkus CLI をアップグレードできます。

brew update (1)
brew upgrade quarkus (2)
1 すべてのパッケージ定義と Homebrew 自体を更新します
2 QuarkusCLI を最新バージョンにアップグレードします
Chocolatey

Chocolatey は、Windows 向けのパッケージマネージャーです。

Chocolatey を使用して、Quarkus CLI をインストール (および更新) できます。

Quarkus CLI をインストールする前に、JDK がインストールされていることを確認してください。

JDK は、Java 17 の場合は choco install ojdkbuild17、Java 11 の場合は choco install ojdkbuild11 を使用してインストールできます。

Chocolatey を使用して Quarkus CLI をインストールするには、次のコマンドを実行します。

choco install quarkus

Quarkus CLI の最新バージョンがインストールされます。

インストールされると、quarkus$PATH にあり、quarkus --version を実行すると、インストールされているバージョンが出力されます。

quarkus --version
2.14.2.Final

以下の方法で、Quarkus CLI をアップグレードできます。

choco upgrade quarkus
Scoop

Scoop は、Windows 向けのパッケージマネージャーです。Scoop を使用して、Quarkus CLI をインストール (および更新) できます。

Quarkus CLI をインストールする前に、JDK がインストールされていることを確認してください。JDK は、Java 17 の場合は scoop install openjdk17 を使用して、Java 11 の場合は scoop install openjdk11 を使用してインストールできます。

Scoop を使用して QuarkusCLI をインストールするには、次のコマンドを実行します。

scoop install quarkus-cli

Quarkus CLI の最新バージョンがインストールされます。インストールされると、quarkus は$PATH` にあり、quarkus --version を実行すると、インストールされているバージョンが出力されます。

quarkus --version
2.14.2.Final

以下の方法で、Quarkus CLI をアップグレードできます。

scoop update quarkus-cli

CLI の使用

--help を使用して、使用可能なすべてのコマンドと共にヘルプ情報を表示します。

quarkus --help
Usage: quarkus [-ehv] [--verbose] [-D=<String=String>]... [COMMAND]

Options:
  -D=<String=String>    Java properties
  -e, --errors          Display error messages.
  -h, --help            Show this help message and exit.
  -v, --version         Print version information and exit.
      --verbose         Verbose mode.

Commands:
  create                  Create a new project.
    app                   Create a Quarkus application project.
    cli                   Create a Quarkus command-line project.
    extension             Create a Quarkus extension project
  build                   Build the current project.
  dev                     Run the current project in dev (live coding) mode.
  extension, ext          Configure extensions of an existing project.
    list, ls              List platforms and extensions.
    categories, cat       List extension categories.
    add                   Add extension(s) to this project.
    remove, rm            Remove extension(s) from this project.
  registry                Configure Quarkus registry client
    list                  List enabled Quarkus registries
    add                   Add a Quarkus extension registry
    remove                Remove a Quarkus extension registry
  version                 Display version information.

このドキュメントは参照として役立ちますが、最も信頼のおける情報源はクライアントヘルプです。

期待する出力が表示されない場合は、 --help を使用して、正しい引数を使用してコマンドを呼び出していることを確認してください。

新規プロジェクトの作成

新しいプロジェクトを作成するには、create コマンドを使用します (指定されていない場合は、app サブコマンドが暗黙的に指定されます)。

quarkus create
-----------

applying codestarts... 📚 java 🔨 maven 📦 quarkus 📝 config-properties 🔧 dockerfiles 🔧 maven-wrapper 🚀 resteasy-codestart

-----------
[SUCCESS] ✅ quarkus project has been successfully generated in:
--> /<output-dir>/code-with-quarkus

これにより、デフォルトの groupId、artifactId、および version の値 (groupId='org.acme'、artifactId='code-with-quarkus' および version='1.0.0-SNAPSHOT') を使用して、現在の作業ディレクトリーに 'code-with-quarkus' という名前のフォルダーが作成されます。

注記: 上記の絵文字は正確に一致しない場合があります。絵文字の表示は、フォント、端末/環境によって異なる場合があります。たとえば、IntelliJ IDEA には、ターミナルでの絵文字の動作/レンダリングに関して、いくつかの長期にわたる問題があります。

2.0.2.Final 以降、コマンドラインで直接 group:artifactId:version 座標構文を使用して、groupId、artifactId、およびバージョンを指定する必要があります。セグメントを選択的に省略して、デフォルト値を使用することができます。

# Create a project with groupId=org.acme, artifactId=bar, and version=1.0.0-SNAPSHOT
quarkus create app bar

# Create a project with groupId=com.foo, artifactId=bar, and version=1.0.0-SNAPSHOT
quarkus create app com.foo:bar

# Create a project with groupId=com.foo, artifactId=bar, and version=1.0
quarkus create app com.foo:bar:1.0

出力には、プロジェクトが作成されていることが表示されます。

-----------

applying codestarts... 📚 java 🔨 maven 📦 quarkus 📝 config-properties 🔧 dockerfiles 🔧 maven-wrapper 🚀 resteasy-codestart

-----------
[SUCCESS] ✅ quarkus project has been successfully generated in:
--> /<output-dir>/bar
-----------

プロジェクトを作成するためのオプションを表示するには、ヘルプオプションを使用します。

quarkus create app --help quarkus create cli --help

以前のバージョンの CLI では、--group-id (-g)、--artifact-id (-a)、および --version (-v) オプションで、groupId、artifactId、および version を指定することが出来ました。出力が期待したものと異なる場合は、クライアントのバージョン quarkus version とヘルプ quarkus create app --help を再確認してください。

Quarkus バージョンの指定

quarkus create および quarkus extension list では、2 つの方法のいずれかで Quarkus のバージョンを明示的に指定することができます。

  1. Specify a specific Platform Release BOM

    A Quarkus Platform release BOM is identified by groupId:artifactId:version (GAV) coordinates. When specifying a platform release BOM, you may use empty segments to fall back to default values (shown with quarkus create app --help). If you specify only one segment (no :), it is assumed to be a version.

    For example:

    • With the 2.0.0.Final version of the CLI, specifying -P :quarkus-bom: is equivalent to -P io.quarkus:quarkus-bom:2.0.0.Final. Specifying -P 999-SNAPSHOT is equivalent to -P io.quarkus:quarkus-bom:999-SNAPSHOT.

    • With the 2.1.0.Final version of the CLI, io.quarkus.platform is the default group id. Specifying -P :quarkus-bom: is equivalent to -P io.quarkus.platform:quarkus-bom:2.1.0.Final. Note that you need to specify the group id to work with a snapshot, e.g. -P io.quarkus::999-SNAPSHOT is equivalent to -P io.quarkus:quarkus-bom:999-SNAPSHOT.

      Note: default values are subject to change. Using the --dry-run option will show you the computed value.

2.プラットフォームストリームの指定

+ プラットフォームストリームは、リモートレジストリーに対して動作します。各レジストリーは 1 つ以上のプラットフォームストリームを定義し、各ストリームは、そのストリームを使用するプロジェクトの設定方法を定義する、1 つ以上のプラットフォームリリース BOM ファイルを定義します。

+ ストリームは platformKey:streamId という構文で識別されます。特定のストリームを指定するには、-S platformKey:streamId を使用します。ストリームを指定する際、空のセグメントは、ストリームリソースの解決ルールに基づき、discovered デフォルトに置き換えられます。

エクステンションの使用

quarkus ext --help

エクステンションの一覧表示

Quarkus CLI を使用して、Quarkus のエクステンションを一覧表示することができます。

quarkus ext ls

結果のフォーマットは、4 つのオプションのいずれかで制御することができます。

  • --name 名前 (artifactId) だけを表示する。

  • --concise 名前 (artifactId) と説明を表示する。

  • --full フォーマットとバージョン/ステータス関連のカラムを簡潔に表示します。

  • --origins エクステンションの Quarkus プラットフォームのリリース元と共に、簡潔な情報を表示します。

quarkus ext ls の動作は、コンテキストによって異なります。

Quarkus リリースのエクステンションの一覧表示

プロジェクトの外側から Quarkus CLI を呼び出すと、CLI 自体で使用されている Quarkus のリリースで利用可能なすべてのエクステンションが一覧表示されます。

また、Specifying the Quarkus version で説明されているように、-P または -S を使用して Quarkus の特定のリリースのエクステンションをリストアップすることができます。

このモードでは、デフォルトで --origins 形式が使用されます。

Quarkus プロジェクトのエクステンションの一覧表示

Quarkus プロジェクトで作業しているとき、CLI は現在のプロジェクトにインストールされているエクステンションを、デフォルトで --name 形式を使用してリスト表示します。

プロジェクトが使用している Quarkus プラットフォームからインストールできるエクステンションをリストアップするには、--installable または -i オプションを使用します。

検索 (--search または -s) を使って、リストの絞り込みやフィルタリングを行うことができます。

quarkus ext list --concise -i -s jdbc
JDBC Driver - DB2                                  quarkus-jdbc-db2
JDBC Driver - PostgreSQL                           quarkus-jdbc-postgresql
JDBC Driver - H2                                   quarkus-jdbc-h2
JDBC Driver - MariaDB                              quarkus-jdbc-mariadb
JDBC Driver - Microsoft SQL Server                 quarkus-jdbc-mssql
JDBC Driver - MySQL                                quarkus-jdbc-mysql
JDBC Driver - Oracle                               quarkus-jdbc-oracle
JDBC Driver - Derby                                quarkus-jdbc-derby
Elytron Security JDBC                              quarkus-elytron-security-jdbc
Agroal - Database connection pool                  quarkus-agroal

エクステンションの追加

Quarkus CLIでは、'add' コマンドを使用して、プロジェクトに Quarkus を 1 つまたは複数のエクステンションを追加できます。

quarkus ext add kubernetes health [SUCCESS] ✅ Extension io.quarkus:quarkus-kubernetes has been installed [SUCCESS] ✅ Extension io.quarkus:quarkus-smallrye-health has been installed

エクステンションの削除

Quarkus CLI では、'remove' コマンドを使用して、プロジェクトから 1 つまたは複数のエクステンションを削除することができます。

quarkus ext rm kubernetes [SUCCESS] ✅ Extension io.quarkus:quarkus-kubernetes has been uninstalled

プロジェクトの構築

Quarkus CLI を使用してプロジェクトをビルドするには (この例ではデフォルトの設定を使用)、次のようにします。

quarkus build [INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< org.acme:code-with-quarkus >--------------------- [INFO] Building code-with-quarkus 1.0.0-SNAPSHOT [INFO] --------------------------------[ jar ]---------------------------------
[INFO]
... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8.331 s [INFO] Finished at: 2021-05-27T10:13:28-04:00 [INFO] ------------------------------------------------------------------------

注: 出力は、プロジェクトで使用しているビルドツール (Maven、Gradle、または JBang) によって異なります。

開発モード

quarkus dev --help

Quarkus CLI から dev モードを起動するには、以下を実行します。

quarkus dev [INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< org.acme:code-with-quarkus >--------------------- [INFO] Building code-with-quarkus 1.0.0-SNAPSHOT [INFO] --------------------------------[ jar ]---------------------------------
[INFO]
...
Listening for transport dt_socket at address: 5005
__  ____  __  _____   ___  __ ____  ______
--/ __ \/ / / / _ | / _ \/ //_/ / / / __/
-/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2021-05-27 10:15:56,032 INFO  [io.quarkus] (Quarkus Main Thread) code-with-quarkus 1.0.0-SNAPSHOT on JVM (powered by Quarkus 999-SNAPSHOT) started in 1.387s. Listening on: http://localhost:8080
2021-05-27 10:15:56,035 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2021-05-27 10:15:56,035 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy-reactive, smallrye-context-propagation]

--
Tests paused, press [r] to resume

注: 出力は、プロジェクトで使用しているビルドツール (Maven、Gradle、または JBang) によって異なります。

Quarkus 1.xとの互換性

バージョン 2 の Quarkus CLI は、1.x の Quarkus プロジェクトまたはリリースで使用できません。Quarkus 1.x のプロジェクトで作業する場合は、Maven/Gradle プラグインを使用します。

シェルのオートコンプリートとエイリアス

コマンドの自動補完は、Bash および Zsh で可能です。

# Setup autocompletion in the current shell source <(quarkus completion)

quarkus コマンドのエイリアスを使用する場合は、次のコマンドでコマンド補完を調整します。

# Add an alias for the quarkus command alias q=quarkus # Add q to list of commands included in quarkus autocompletion complete -F _complete_quarkus q