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.13.9.Final
最近の JBang バージョンを使用する

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

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

SDKMAN!

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

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

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

使用可能な 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.13.9.Final

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

sdk upgrade quarkus
Homebrew

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

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

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

JDKのインストールは、最新のJavaバージョンなら brew install openjdk 、Java 17なら brew install openjdk@17 、Java 11なら brew install openjdk@11 で行うことができます。

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

brew install quarkusio/tap/quarkus

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

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

quarkus --version
2.13.9.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.13.9.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.13.9.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
-----------

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

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

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

Quarkus バージョンの指定

Both quarkus create and quarkus extension list allow you to explicitly specify a version of Quarkus in one of two ways:

  1. 特定のプラットフォーム・リリースBOMを指定

    QuarkusプラットフォームのリリースBOM は、 groupId:artifactId:version (GAV)座標で識別されます。プラットフォームリリースのBOMを指定する場合、空のセグメントを使用してデフォルト値( quarkus create app --help )に戻すことができます。セグメントを1つだけ指定した場合( : を指定しない場合)、そのセグメントはバージョンであると見なされます。

    例えば、以下のようになります。

    • 2.0.0.Final バージョンの CLI では、 -P :quarkus-bom: を指定すると、 -P io.quarkus:quarkus-bom:2.0.0.Final と同じになります。 -P 999-SNAPSHOT を指定すると、 -P io.quarkus:quarkus-bom:999-SNAPSHOT と同じになります。

    • 2.1.0.Final バージョンの CLI では、 io.quarkus.platform がデフォルトのグループ ID です。 -P :quarkus-bom: を指定すると、 -P io.quarkus.platform:quarkus-bom:2.1.0.Final と同じになります。スナップショットで作業するにはグループ ID を指定する必要があることに注意してください。例えば、 -P io.quarkus::999-SNAPSHOT-P io.quarkus:quarkus-bom:999-SNAPSHOT と同じになります。

      注意:デフォルト値は変更されることがあります。 --dry-run オプションを使用すると、計算された値が表示されます。

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

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

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

エクステンションの使用

quarkus ext --help

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

The Quarkus CLI can be used to list Quarkus extensions.

quarkus ext ls

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

  • --name 名前(artifactId)のみの表示

  • --concise 名前(artifactId)と説明を表示します

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

  • --origins conciseフォーマットと共に、エクステンションのQuarkusプラットフォームリリースオリジンを表示します。

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

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

If you invoke the Quarkus CLI from outside of a project, Quarkus will list all the extensions available for the Quarkus release used by the CLI itself.

You can also list extensions for a specific release of Quarkus using -P or -S, as described in Specifying the Quarkus version.

This mode uses the --origins format by default.

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

When working with a Quarkus project, the CLI will list the extensions the current project has installed, using the --name format by default.

Use the --installable or -i option to list extensions that can be installed from the Quarkus platform the project is using.

You can narrow or filter the list using search (--search or -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

プロジェクトのビルド

To build your project using the Quarkus CLI (using the default configuration in this example):

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プラグインを使用してください。

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

Automatic command completion is available for Bash and 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