2.2. CLI の実行
アプリケーションに対して MTR を実行できます。
手順
-
ターミナルを開き、
<MTR_HOME>/bin/
ディレクトリーに移動します。 Windows の場合は
windup-cli
スクリプトまたはwindup-cli.bat
を実行し、適切な引数を指定します。$ ./windup-cli --input /path/to/jee-example-app-1.0.0.ear \ --output /path/to/output --source weblogic --target eap:6 \ --packages com.acme org.apache
-
--input
: 評価されるアプリケーション。 -
--output
: 生成されたレポートの出力ディレクトリー。 -
--source
: アプリケーション移行元のテクノロジー。 -
--target
: アプリケーション移行先のテクノロジー。 -
--packages
: 評価されるパッケージ。この引数は、パフォーマンスを改善するために強く推奨されます。
-
- レポートにアクセスします。
2.2.1. MTR コマンドの例
アプリケーションアーカイブでの MTR の実行
次のコマンドは、JBoss EAP 5 から JBoss EAP 7 に移行するためのサンプル EAR アーカイブ jee-example-app-1.0.0.ear の com.acme
パッケージおよび org.apache
パッケージを解析します。
$ <MTR_HOME>/bin/windup-cli \ --input /path/to/jee-example-app-1.0.0.ear \ --output /path/to/report-output/ --source eap:5 --target eap:7 \ --packages com.acme org.apache
ソースコードでの MTR の実行
次のコマンドは、JBoss EAP 6 に移行するための seam-booking-5.2 サンプルソースコードの org.jboss.seam
パッケージを分析します。
$ <MTR_HOME>/bin/windup-cli --sourceMode --input /path/to/seam-booking-5.2/ \ --output /path/to/report-output/ --target eap:6 --packages org.jboss.seam
cloud-readiness ルールの実行
次のコマンドは、JBoss EAP 7 に移行するためのサンプル EAR アーカイブ jee-example-app-1.0.0.ear の com.acme
パッケージおよび org.apache
パッケージを解析します。また、クラウドの準備ができるかどうかも評価します。
$ <MTR_HOME>/windup-cli --input /path/to/jee-example-app-1.0.0.ear \ --output /path/to/report-output/ \ --target eap:7 --target cloud-readiness --packages com.acme org.apache
MTR プロパティーの上書き
デフォルトの Fernflower デコンパイラーを上書きするには、コマンドラインで -Dwindup.decompiler
引数を渡します。たとえば、Procyon デコンパイル機能を使用する場合は、以下の構文を使用します。
$ <MTR_HOME>/bin/windup-cli -Dwindup.decompiler=procyon \ --input <INPUT_ARCHIVE_OR_DIRECTORY> --output <OUTPUT_REPORT_DIRECTORY> \ --target <TARGET_TECHNOLOGY> --packages <PACKAGE_1> <PACKAGE_2>
2.2.2. MTR CLI の Bash 補完
MTR CLI は、Linux システムの Bash 補完を有効にするオプションを提供し、コマンドを入力した時に Tab キーを押して MTR コマンドライン引数を自動化できます。たとえば、Bash 補完を有効にすると、以下のように利用可能な引数のリストが表示されます。
$ <MTR_HOME>/bin/windup-cli [TAB]
Bash 補完の有効化
現在のシェルで Bash 補完を有効にするには、以下のコマンドを実行します。
$ source <MTR_HOME>/bash-completion/windup-cli
永続的な Bash 補完の有効化
以下のコマンドを使用すると、再起動後も Bash 補完が維持されます。
システムを再起動しても特定のユーザーの Bash 補完を有効にするには、そのユーザーの
~/.bashrc
ファイルに以下の行を追加します。source <MTR_HOME>/bash-completion/windup-cli
システムの再起動後すべてのユーザーの Bash 補完を有効にするには、root ユーザーで Migration Toolkit for Runtimes CLI Bash 補完ファイルを
/etc/bash_completion.d/
ディレクトリーにコピーします。# cp <MTR_HOME>/bash-completion/windup-cli /etc/bash_completion.d/
2.2.3. MTR ヘルプへのアクセス
windup-cli
コマンドで利用可能な引数の完全な一覧を表示するには、ターミナルを開き、<MTR_HOME>
ディレクトリーに移動して、以下のコマンドを実行します。
$ <MTR_HOME>/bin/windup-cli --help
2.2.4. OpenRewrite レシピの使用
OpenRewrite レシピのサポートはテクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
テクノロジープレビュー機能のサポート範囲は、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
MTR CLI で OpenRewrite レシピを使用すると、Java アプリケーションのソースコードをリファクタリングできます。
たとえば、OpenRewrite レシピの org.jboss.windup.JavaxToJakarta
は、インポートされた javax
パッケージの名前を同等の jakarta
に変更します。
手順
windup-cli
を実行し、レシピ名、設定ファイルへのパス、およびアプリケーションを指定します。$ ./windup-cli --openrewrite --input </path/to/source/project> \ "-Drewrite.configLocation=<path/to/rewrite.yaml>" \ "-DactiveRecipes=<recipe_name>" --goal dryRun
-
"-DactiveRecipes=<recipe name>"
: OpenRewrite recipe を指定します (例:org.jboss.windup.JavaxToJakarta
)。 -
--input
: リファクタリングするアプリケーションを指定します。アプリケーションは、Maven Project Object Model (POM) XML ファイルpom.xml
を含むソースコードプロジェクトの最上位にある必要があります。 -
-Drewrite.configLocation=<path/to/rewrite.yaml>
: 使用するrewrite.yaml
設定ファイルの場所。同梱のrewrite.yaml
設定ファイルは、<MTR_HOME>/rules/openrewrite
サブフォルダーにあります (例:" -Drewrite.configLocation=<MTR_HOME>/rules/openrewrite/jakarta/javax/imports/rewrite.yaml"
。 "-DactiveRecipes=<recipe name>"
: OpenRewrite recipe を指定します (例:org.jboss.windup.JavaxToJakarta
)。activeRecipes
パラメーターでそれぞれを指定すると、複数のレシピを含めることができます。たとえば、レシピorg.jboss.windup.JavaxInjectToJakartaInject
とorg.jboss.windup.JavaxEjbToJakartaEjb"
を含めるには、"-DactiveRecipes=<recipe name>"
で以下を入力します。"-DactiveRecipes=org.jboss.windup.JavaxInjectToJakartaInject, \ org.jboss.windup.JavaxEjbToJakartaEjb"
--goal
: オプション: 実行する OpenRewrite Maven ゴール。-
dryRun
: スクリプトは、提案される変更のリストを返します。"Run 'mvn rewrite:run' to apply the recipes"
メッセージは無視します。 -
run
: スクリプトは変更を適用します。
-
-
--goal run
を指定してwindup-cli
を実行し、レシピを適用します。$ ./windup-cli --openrewrite --input </path/to/source/project> \ "-Drewrite.configLocation=<path/to/rewrite.yaml>" \ "-DactiveRecipes=<recipe_name>" --goal run
2.2.4.1. 利用可能な OpenRewrite レシピ
移行パス | 目的 | rewrite.configLocation | activeRecipes |
---|---|---|---|
Java EE から Jakarta EE |
|
|
|
Java EE から Jakarta EE | ブートストラップファイルの名前を変更する |
|
|
Java EE から Jakarta EE |
|
|
|
Spring Boot から Quarkus |
|
|
|