2.2. CLI の実行


アプリケーションに対して MTR を実行できます。

手順

  1. ターミナルを開き、<MTR_HOME>/bin/ ディレクトリーに移動します。
  2. 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: 評価されるパッケージ。この引数は、パフォーマンスを改善するために強く推奨されます。
  3. レポートにアクセスします。

2.2.1. MTR コマンドの例

アプリケーションアーカイブでの MTR の実行

次のコマンドは、JBoss EAP 5 から JBoss EAP 7 に移行するためのサンプル EAR アーカイブ jee-example-app-1.0.0.earcom.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.earcom.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 に変更します。

手順

  1. 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.JavaxInjectToJakartaInjectorg.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: スクリプトは変更を適用します。
  2. --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 レシピ

表2.1 利用可能な OpenRewrite レシピ
移行パス目的rewrite.configLocationactiveRecipes

Java EE から Jakarta EE

javax パッケージのインポートを同等の jakarta パッケージに置き換える

pom.xml ファイル内で宣言された javax アーティファクトを jakarta と同等のものに置き換える

<MTR_HOME>/rules/openrewrite/jakarta \ /javax/imports/rewrite.yml

org.jboss.windup.JavaxToJakarta

Java EE から Jakarta EE

ブートストラップファイルの名前を変更する

<MTR_HOME>/rules/openrewrite/jakarta \ /javax/bootstrapping/rewrite.yml

org.jboss.windup.jakarta.javax. \ BootstrappingFiles

Java EE から Jakarta EE

persistence.xml 設定を変換する

<MTR_HOME>/rules/openrewrite/jakarta \ /javax/xml/rewrite.yml

org.jboss.windup.javax-jakarta. \ PersistenceXML

Spring Boot から Quarkus

application*.properties に一致するファイル内の spring.jpa.hibernate.ddl-auto プロパティーを置き換える

<MTR_HOME>/rules/openrewrite/quarkus \ /springboot/properties/rewrite.yml

org.jboss.windup.sb-quarkus.Properties

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.