2.3. CLI の実行


シナリオに応じて、Migration Toolkit for Applications (MTA) CLI を使用して、次の方法で分析を実行できます。

重要

MTA 7.2.0 以降では、コンテナーレスモードでアプリケーション分析を実行できます。このオプションはデフォルトで設定されており、すべての要件が満たされている場合は自動的に使用されることに注意してください。詳細は、コンテナーレス CLI の実行 を参照してください。

2.3.1. 1 つのアプリケーションに対して MTA CLI を実行する

Migration Toolkit for Applications (MTA) CLI は、1 つのアプリケーションに対して実行できます。

手順

  1. ターミナルを開き、<MTA_HOME>/ ディレクトリーに移動します。
  2. mta-cli スクリプト (Windows の場合は mta-cli.exe) を、適切な引数を指定して実行します。

    $ ./mta-cli analyze --input <path_to_input> \
        --output <path_to_output> --source <source_name> --target <target_source> \
    • --input: 評価されるアプリケーション。
    • --output: 生成されたレポートの出力ディレクトリー。
    • --source: アプリケーション移行元のテクノロジー。たとえば、weblogic です。
    • --target: アプリケーション移行先のテクノロジー。たとえば、eap8 です。
  3. レポートにアクセスします。

2.3.1.1. MTA コマンドの例

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

次のコマンドでは、JBoss EAP 5 から JBoss EAP 7 に移行するために、jee-example-app-1.0.0.ear という名前のサンプル EAR アーカイブを分析します。

$ <MTA_HOME>/mta-cli analyze \
    --input <path_to_jee-example-app-1.0.0.ear> \
    --output <path_to_report_output> --source eap5 --target eap7 \
ソースコードに対する MTA の実行

次のコマンドでは、JBoss EAP 8 に移行するために、customer-management というサンプルアプリケーションのソースコードを分析します。

$ <MTA_HOME>/mta-cli analyze --mode source-only --input <path_to_customer-management>
--output <path_to_report_output> --target eap8
cloud-readiness ルールの実行

次のコマンドでは、JBoss EAP 7 に移行するために、jee-example-app-1.0.0.ear という名前のサンプル EAR アーカイブを分析します。また、アーカイブがクラウド対応しているかどうかも評価します。

$ <MTA_HOME>/mta-cli analyze --input <path_to_jee-example-app-1.0.0.ear> \
    --output <path_to_report_output> \
    --target eap7

2.3.2. 複数のアプリケーションに対して MTA CLI を実行し、1 つのレポートを生成する (開発者プレビュー)

複数のアプリケーションに対して Migration Toolkit for Applications (MTA) CLI を実行し、1 つに結合されたレポートを生成できるようになりました。これにより、時間を節約でき、移行に向けて一連のアプリケーションを準備する方法をより適切に把握できます。

この機能は現在、開発者プレビュー機能です。

重要

1 つ以上のアプリケーションに対する CLI の実行は、開発者プレビュー機能です。開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。本番環境またはビジネスクリティカルなワークロードには、開発者プレビュー機能を使用しないでください。開発者プレビュー機能は、Red Hat 製品オファリングに含まれる可能性がある前に、今後の製品機能への早期アクセスを提供し、お客様が機能をテストし、開発プロセス中にフィードバックを提供できるようにします。これらの機能にはドキュメントがない可能性があり、いつでも変更または削除される可能性があり、テストは制限されています。Red Hat は、関連する SLA なしで、開発者プレビュー機能に関するフィードバックを送信する方法を提供する場合があります。

手順

  1. ターミナルを開き、<MTA_HOME>/ ディレクトリーに移動します。
  2. mta-cli スクリプト (Windows の場合は mta-cli.exe) を、適切な引数を指定して実行します。analyze コマンドごとに 1 つの入力を指定しますが、すべての入力に対して同じ出力ディレクトリーを指定します。たとえば、アプリケーション A、B、C を分析するには、次のように指定します。

    1. 入力 A について、次のコマンドを指定します。

      $ ./{mta-cli} analyze --bulk --input=<path_to_input_A> --output=<path_to_output_ABC> --source <source_A> --target <target_A>
      • --input: 評価されるアプリケーション。
      • --output: 生成されたレポートの出力ディレクトリー。
      • --source: アプリケーション移行元のテクノロジー。たとえば、weblogic です。
      • --target: アプリケーション移行先のテクノロジー。たとえば、eap8 です。
    2. 入力 B について、次のコマンドを指定します。

      $ ./{mta-cli} analyze --bulk --input=<path_to_input_B> --output=<path_to_output_ABC>  --source <source_B> --target <target_B>
    3. 入力 C について、次のコマンドを指定します。

      $ ./{mta-cli} analyze --bulk --input=<path_to_input_C> --output=<path_to_output_ABC>  --source <source_C> --target <target_C>

      MTA によって、アプリケーションを移行する前に解決する必要があるすべての問題をリストした 1 つのレポートが生成されます。

  3. レポートにアクセスします。

2.3.3. コンテナーレス CLI の実行

MTA 7.2.0 以降では、コンテナーランタイムのインストールを必要としない MTA CLI を使用して、Java アプリケーションのアプリケーション分析を実行できます。

重要

MTA 7.2.0 以降では、コンテナーレス CLI がデフォルトモードです。コンテナーランタイムの使用を有効にするには、--run-local フラグを false に設定する必要があります。

--run-local=false

前提条件

  • システムに OpenJDK バージョン 17 以降がインストールされている。
  • システムに Maven がインストールされている。
  • CLI では、mvn バイナリーへのパスがシステム変数に正しく登録されていることを前提としている。したがって、次の変数に mvn が追加されていることを確認してください。

    • Windows の Path
    • Linux および macOS の PATH
  • システムに python3 パッケージがインストールされている。
  • JAVA_HOME 環境変数が設定されている。
  • JVM_MAX_MEM システム変数が設定されている。

    注記

    JVM_MAX_MEM を設定しないと、分析がハングする可能性があります。

手順

  1. インストールされた MTA CLI .zip ファイルを $PATH に移動します。

    $ mv <mta_cli_zip>/<os>-kantra /usr/bin
  2. 要件を .kantra ディレクトリーに移動します。

    $ mv $HOME/kantra.<os>.<arch> $HOME/.kantra
    注記

    CLI は、分析を実行するディレクトリーに要件を移動して実行できます。分析中、CLI は最初にこのディレクトリーで要件をチェックし、要件が見つからない場合は $HOME/.kantra ディレクトリーで検索します。

  3. オプション: すべての mta-cli analyze コマンドオプションを表示します。

    mta-cli analyze --help
  4. アプリケーション分析を実行します。

    $ mta-cli analyze --overwrite --input <path_to_input>  --output <path_to_output> --target <target_source>

    コマンド引数は次のものを表します。

    • --overwrite: 出力フォルダーが存在する場合は上書きします。
    • --input: 分析するアプリケーション。
    • --output: 生成されたレポートの出力ディレクトリー。
    • --target: アプリケーション移行のターゲットテクノロジー (例: eap8)。

2.3.4. コマンドラインを使用して分析を実行する

Analyze は、analyzer-lsp ツールを使用してソースコードとバイナリー分析の実行をサポートします。analyzer-lsp はプロバイダーのルールを評価し、ルールの一致を判断します。

アプリケーションのソースコード分析を実行するには、次のコマンドを実行します。

mta-cli analyze --input=<path_to_source_code> --output=<path_to_output_directory>

すべてのフラグ:

Analyze application source code

Usage:
  mta-cli analyze [flags]

Flags:

      --analyze-known-libraries           Analyze known open-source libraries.
      --context-lines (int)               Number of lines of source code to
                                          include in the output for each
                                          incident (default: `100`).
  -d, --dependency-folders (stringArray)  Directory for dependencies.
      --enable-default-rulesets           Run default rulesets with analysis
                                          (default: `true`).
  -h, --help                              Help for analyze.
      --http-proxy (string)               HTTP proxy string URL.
      --https-proxy (string)              HTTPS proxy string URL.
      --incident-selector (string)        An expression to select incidents
                                          based on custom variables.
                                          Example:
                                          !package=io.demo.config-utils
  -i, --input (string)                    Path to application source code or
                                          a binary.
      --jaeger-endpoint (string)          Jaeger endpoint to collect traces.
      --json-output                       Create analysis and dependency
                                          output as JSON.
      --list-sources                      List rules for available
                                          migration sources.
      --list-targets                      List rules for available
                                          migration targets.
  -l, --label-selector (string)           Run rules based on specified label
                                          selector expression.
      --maven-settings (string)           Path to the custom maven
                                          settings file to use.
      --overwrite                         Overwrite output directory.
      --skip-static-report                Do not generate the static report.
  -m, --mode (string)                     Analysis mode, must be one of
                                          `full` or `source-only`
                                          (default: `full`).
      --no-proxy (string)                 Proxy-excluded URLs
                                          (relevant only with proxy).
  -o, --output (string)                   Path to the directory for analysis
                                          output.
      --overwrite                         Overwrite output directory.
      --rules (stringArray)               Filename or directory containing
                                          rule files.
      --skip-static-report                Do not generate the static report.
  -s, --source (string)                   Source technology to consider
                                          for analysis.
                                          To specify multiple sources,
                                          repeat the parameter:
                                          `--source <source_1>
                                          --source <source_2>` etc.
  -t, --target (string)                   Target technology to consider
                                          for analysis.
                                          To specify multiple targets,
                                          repeat the parameter:
                                          `--target <target_1>
                                          --target <target_2>` etc.


Global Flags:
      --log-level uint32                  Log level (default: 4).
      --no-cleanup                        Do not cleanup temporary resources.
注記

上記のフラグのリストには --bulk フラグは含まれていません。このフラグは開発者プレビュー機能の一部として提供されているためです。この機能については、CLI で複数のアプリケーションを分析するときに 1 つのレポートを提供するためのサポート で説明されています。

使用例:

  1. 分析を実行するサンプルアプリケーションを取得します。
  2. 利用可能なターゲットテクノロジーをリストします。

    mta-cli analyze --list-targets
  3. 指定したターゲットテクノロジー (例: cloud-readiness) を使用して分析を実行します。

    mta-cli analyze --input=<path-to/example-applications/example-1> --output=<path-to-output-dir> --target=cloud-readiness
  4. 指定した出力パスに、いくつかの分析レポートが作成されます。

    $ ls ./output/ -1
    analysis.log
    dependencies.yaml
    dependency.log
    output.yaml
    static-report
    • output.yaml は、Issues レポートが含まれるファイルです。
    • static-report には、静的 HTML レポートが含まれています。
    • dependencies.yaml には、依存関係レポートが含まれています。

2.3.5. コマンドラインを使用して変換を実行する

変換を使用して、以下のアクションを実行できます。

  • transform openrewrite コマンドを使用して、Java アプリケーションのソースコードを変換します。
  • transform rules コマンドを使用して、XML ルールを YAML ルールに変換します。
重要

変換を実行するには、コンテナーランタイムを設定する必要があります。詳細は、Podman を使用して CLI をインストールする を参照してください。

Transform application source code or mta XML rules

Usage:
  mta-cli transform [flags]
  mta-cli transform [command]

Available Commands:
  openrewrite Transform application source code using OpenRewrite recipes
  rules       Convert XML rules to YAML

Flags:
  -h, --help   help for transform

Global Flags:
      --log-level uint32   log level (default 4)
      --no-cleanup         do not clean up temporary resources

Use "mta-cli transform [command] --help" for more information about a command.

2.3.5.1. OpenRewrite

openrewrite サブコマンドを使用すると、ソースコードに対して OpenRewrite レシピを実行できます。

Transform application source code using OpenRewrite recipes

Usage:
  mta-cli transform openrewrite [flags]

Flags:
  -g, --goal string     target goal (default "dryRun")
  -h, --help            help for openrewrite
  -i, --input string    path to application source code directory
  -l, --list-targets    list all available OpenRewrite recipes
  -s, --maven-settings string   path to a custom maven settings file to use
  -t, --target string   target openrewrite recipe to use. Run --list-targets to get a list of packaged recipes.

Global Flags:
      --log-level uint32   log level (default 4)
      --no-cleanup         do not clean up temporary resources

アプリケーションのソースコードに対して transform openrewrite を実行するには、次のコマンドを実行します。

mta-cli transform openrewrite --input=<path/to/source/code> --target=<exactly_one_target_from_the_list>

注記

transform overwrite コマンドの実行に使用できるターゲットは 1 つだけです。

2.3.5.2. ルール

transform コマンドの rules サブコマンドを使用して、mta XML ルールを analyzer-lsp YAML ルールに変換できます。ルールを変更するために、rules サブコマンドは windup-shim ツールを使用します。

注記

analyzer-lsp はプロバイダーのルールを評価し、ルールの一致を判断します。

Convert XML rules to YAML

Usage:
  mta-cli transform rules [flags]

Flags:
  -h, --help                help for rules
  -i, --input stringArray   path to XML rule file(s) or directory
  -o, --output string       path to output directory

Global Flags:
      --log-level int   log level (default 5)

アプリケーションのソースコードで transform rules を実行するには、以下を実行します。

mta-cli transform rules --input=<path/to/xmlrules> --output=<path/to/output/dir>

使用例:

  1. ソースコードを変換するサンプルアプリケーションを取得します。
  2. 利用可能な OpenRewrite レシピを表示します。

    mta-cli transform openrewrite --list-targets
  3. サンプルアプリケーションでレシピを実行します。

    mta-cli transform openrewrite --input=<path-to/jakartaee-duke> --target=jakarta-imports

    jakartaee-duke アプリケーションのソースコードの差分を調べて、変換を確認します。

2.3.5.3. 利用可能な OpenRewrite レシピ

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

Java EE から Jakarta EE

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

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

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

org.jboss.windup.JavaxToJakarta

Java EE から Jakarta EE

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

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

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

Java EE から Jakarta EE

persistence.xml 設定を変換する

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

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

Spring Boot から Quarkus

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

<MTA_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.