Quarkus コマンドラインインターフェイス (CLI) を使用した Quarkus アプリの構築
quarkus
コマンドを使用すると、プロジェクトの作成、エクステンションの管理、基盤となるプロジェクトビルドツールを使用したビルドと開発の必須タスクを行うことができます。
CLI のインストール
Quarkus CLI は、以下のようないくつかの開発者向けのパッケージマネージャーで利用できます。
これらのツールのいずれかをすでに使用している (または使用したい) 場合、これは Quarkus CLI をインストールして最新の状態に保つ最も簡単な方法です。
これらのパッケージマネージャーに加えて、Quarkus CLI は JBang からもインストールできます。最も実用的な方法を選択してください。
-
JBang - Linux、macOS、および Windows 向け
-
SDKMAN! - Linux および macOS 向け
-
Homebrew - Linux および macOS 向け
-
Chocolatey - Windows 向け
-
Scoop - Windows 向け
CLI の使用
--help
を使用して、使用可能なすべてのコマンドと共にヘルプ情報を表示します。
quarkus --help
Usage: quarkus [-ehv] [--refresh] [--verbose] [--config=CONFIG]
[-D=<String=String>]... [COMMAND]
Options:
--refresh Refresh the local Quarkus extension registry cache
--config=CONFIG Configuration file
-h, --help Display this help message.
-v, --version Print CLI version information and exit.
-e, --errors Display error messages.
--verbose Verbose mode.
-D=<String=String> Java properties
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.
test Run the current project in continuous testing 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.
image Build or push project container image.
build Build a container image.
docker Build a container image using Docker.
buildpack Build a container image using Buildpack.
jib Build a container image using Jib.
openshift Build a container image using OpenShift.
push Push a container image.
deploy Deploy application.
kubernetes Perform the deploy action on Kubernetes.
openshift Perform the deploy action on OpenShift.
knative Perform the deploy action on Knative.
kind Perform the deploy action on Kind.
minikube Perform the deploy action on minikube.
registry Configure Quarkus registry client
list List enabled Quarkus registries
add Add a Quarkus extension registry
remove Remove a Quarkus extension registry
info Display project information and verify versions
health (platform and extensions).
update, up, upgrade Suggest recommended project updates with the
possibility to apply them.
version Display CLI version information.
plugin, plug Configure plugins of the Quarkus CLI.
list, ls List CLI plugins.
add Add plugin(s) to the Quarkus CLI.
remove Remove plugin(s) to the Quarkus CLI.
sync Sync (discover / purge) CLI Plugins.
completion bash/zsh completion: source <(quarkus completion)
このドキュメントは便利なリファレンスですが、最も信頼のおける情報源はクライアントヘルプです。 期待する出力が表示されない場合は、 |
新規プロジェクトの作成
新しいプロジェクトを作成するには、 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では、ターミナルでの絵文字の動作やレンダリングに関して、いくつかの長期にわたる問題が残されています。 |
コマンドラインから直接、 groupId
、 artifactId
、 version
を group:artifactId:version
の構文を使用して指定することができます。セグメントを選択的に省略して、デフォルト値を使用することができます:
# 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
Quarkus バージョンの指定
Both quarkus create
and quarkus extension list
allow you to explicitly specify a version of Quarkus in one of two ways:
-
特定のプラットフォーム・リリースBOMを指定
Quarkus プラットフォームリリース BOM は、
groupId:artifactId:version
(GAV) 座標で識別されます。プラットフォームリリース BOM を指定する場合、空のセグメントを使用してデフォルト値 (quarkus create app --help
で表示) にフォールバックできます。セグメントを 1 つだけ指定した (:
を指定しない) 場合、そのセグメントはバージョンと見なされます。io.quarkus.platform
はデフォルトのgroupId
です。-P :quarkus-bom:
を指定すると、-P io.quarkus.platform:quarkus-bom:3.21.0
と同じになります。スナップショットを操作するにはgroupId
を指定する必要があることに注意してください。たとえば、-P io.quarkus::999-SNAPSHOT
は-P io.quarkus:quarkus-bom:999-SNAPSHOT
と同じです。デフォルト値は変更される可能性があります。計算された値を確認するには、
--dry-run
オプションを使用してください。 -
プラットフォーム・ストリームの指定
プラットフォーム・ストリームは、リモート・レジストリに対して動作します。各レジストリは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.
Quarkus バージョンの指定 で説明されているとおり、 -P
または -S
を使用して、Quarkus の特定リリースのエクステンションをリストすることもできます。
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
サブコマンドを使用してプロジェクトに 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
glob パターンに一致するすべてのエクステンションをインストールできます。
quarkus ext add smallrye-*
プロジェクトのビルド
Quarkus CLI を使用してプロジェクトをビルドするには (この例ではデフォルト設定を使用)、 build
コマンドを使用します。
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)によって異なります。 |
ビルドの一部として clean を実行するには、 quarkus build --clean を実行します。
|
開発モード
To start dev mode from the Quarkus CLI, use the dev
command:
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, rest, smallrye-context-propagation]
--
Tests paused, press [r] to resume
出力は、プロジェクトが使用しているビルドツール(Maven、Gradle、またはJBang)によって異なります。 |
ビルドの一部として clean を実行するには、 quarkus dev --clean を実行します。
|
シェルのオートコンプリートとエイリアス
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
コンテナイメージ
Quarkus CLI を使用すると、プロジェクト設定を変更せずに (コンテナーイメージエクステンションの追加/削除) コンテナーイメージをビルドできます。 プロジェクトのイメージをビルドするには、以下を実行します。
quarkus image build
image build
コマンドを直接使用することも、サブコマンドを選択することもできます。使用可能なサブコマンドは次のとおりです。
-
docker
-
buildpacks
-
jib
-
openshift
各サブコマンドは、Quarkusがサポートしているイメージビルドツールに対応しており、特定の設定オプションにアクセスできます。
たとえば、 Cloud Native Buildpack をカスタムビルダーイメージで使用するには、次のようにします:
quarkus image build buildpack --builder-image <your builder image>
CLIの拡張
The Quarkus CLI embeds a plugin system that can be used to dynamically add commands and subcommands to the CLI.
プラグインとは
A plugin can be any executable, jar or Java command that can be found locally or obtained remotely.
Plugins are classified as follows:
-
シェル経由で実行されるプラグイン
-
実行可能ファイル (ローカルで見つかった
quarkus-
で始まる実行可能ファイル) -
jbang 経由で実行されるプラグイン
-
jar (ローカルで見つかった実行可能な jar)
-
jbang エイリアス (ローカルにインストールされた、または quarkusio カタログを通じてインストールされた、
quarkus-
で始まる任意の jbang エイリアス) -
maven (実行可能な jar を指す GACTV 形式の任意の Maven 座標)
プラグインの入手方法
Plugins can be found via multiple sources that are described below.
エクステンション
Quarkus エクステンションは、メタデータの一部として cli-plugins
のリストを定義する場合があります。
リストには、実行可能な jar を指す GACTV 文字列が含まれる場合があります。
現時点では、CLI は利用可能なエクス転生のリストを取得できますが、エクステンションのバージョンについてはそれほど正確ではありません (エクステンションカタログにあるバージョンを使用)。 |
プラグインの管理
Plugins are managed using the following commands.
プラグインをリストアップ
The following command lists the installed plugins:
quarkus plugin list
No plugins installed!
To include the installable plugins in the list, append --installable to the command.
利用可能/インストール可能なプラグインを一覧表示します:
quarkus plugin list --installable
Name Type Scope Location Description
kill jbang user quarkus-kill@quarkusio
* fmt jbang user quarkus-fmt@quarkusio
greeter executable user /home/iocanel/bin/quarkus-greeter
Use the 'plugin add' subcommand and pass the location of any plugin listed above, or any remote location in the form of URL / GACTV pointing to a remote plugin.
list
コマンドの出力は、 -t
を使用して type
でフィルタリングすることも、 -s
フラグと検索パターンを使用して名前でフィルタリングすることもできます。
たとえば、 k
の文字で始まるインストール可能なプラグインをすべてリスト表示するには、次のコマンドを使用します。
quarkus plugin list --installable -s "k*"
Name Type Scope Location Description
kill jbang user quarkus-kill@quarkusio
Use the 'plugin add' subcommand and pass the location of any plugin listed above, or any remote location in the form of URL / GACTV pointing to a remote plugin.
プラグインの追加
To add any of the installable plugins, use quarkus plugin add <name or location>
:
quarkus plugin add kill
Added plugin:
Name Type Scope Location Description
* kill jbang user quarkus-kill@quarkusio
上記のコマンドにより、 quarkus plugin list --installable
でリストされた名前を使用して、 name
でプラグインがインストールされました。
インストールされたコマンドは、 quarkus kill
を使用して実行できます。
ユーザーは、 quarkus plug list --installable で検出されたプラグインに限定されません。
ユーザーは、実行可能な jar または Java ファイルを指す URL または Maven 座標を指定することで、プラグインをインストールできます。
|
Maven 座標を介して実行可能な jar をプラグインとしてインストールできます。
たとえば、 quarkus-authzed
エクステンション用の CLI ユーティリティーを提供する実際の実行可能 jar である io.quarkiverse.authzed:quarkus-authzed-cli:runner:jar:0.2.0
を使用してみましょう。
quarkus plugin add io.quarkiverse.authzed:quarkus-authzed-cli:runner:jar:0.2.0 -d "Authzed CLI"
Added plugin:
Name Type Location Description
* authzed maven io.quarkiverse.authzed:quarkus-authzed-cli:runner:jar:0.2.0 Authzed CLI
ヘルプ出力に表示される説明を設定することもできます。 |
quarkus --help
Usage: quarkus [-ehv] [--refresh] [--verbose] [--config=CONFIG]
[-D=<String=String>]... [COMMAND]
...
Commands:
...
plugin, plug Configure plugins of the Quarkus CLI.
list, ls List CLI plugins.
add Add plugin(s) to the Quarkus CLI.
remove Remove plugin(s) to the Quarkus CLI.
sync Sync (discover / purge) CLI Plugins.
completion bash/zsh completion: source <(quarkus completion)
authzed Authzed CLI
...
プラグインはどこに追加されるのですか?
Plugins are added in the plugin catalog that lives at: <user home>/.quarkus/cli/plugins/quarkus-cli-catalog.json
.
There is a second plugin catalog that is relative to the current project (if available): <project root>/.quarkus/cli/plugins/quarkus-cli-catalog.json
.
The effective catalog is the combination of both the user
and project
catalogs with the latter being able to override entries of the former (e.g. use a different version or location for a plugin).
If the project catalog is available, it will always be preferred, unless explicitly specified with the --user
flag.
The column scope
of the plugins table indicates where the plugin is/will be added.
プラグインの削除
Plugins are removed using quarkus plugin remove <plugin name>
.
quarkus plugin remove kill
Removed plugin:
Name Type Scope Location Description
kill jbang user quarkus-kill@quarkusio
プラグインの同期
古くなったプラグインの削除や、エクステンションによって提供される新しいプラグインの検出には、 quarkus plugin sync
コマンドを使用できます。
このコマンドを使用すると、カタログに追加されたが使用できなくなったバイナリーと JBang エイリアスが削除されます。
URL/Maven 座標を使用してユーザーが明示的に追加したリモートプラグインは、削除から除外されます。 |
The command is also executed implicitly through any of the CLI commands:
-
Weekly
-
最後のカタログ更新以降にプロジェクトファイルが更新されている場合(モジュールに限定)。