CLI ガイド
Red Hat Application Migration Toolkit を使用してアプリケーションを移行する方法
概要
第1章 はじめに
1.1. CLI ガイドについて
このガイドは、Java アプリケーションやその他のコンポーネントを移行するために、Migration Toolkit for Applications (MTA) を使用するエンジニア、コンサルタント、およびその他のユーザーを対象としています。CLI のインストールおよび実行方法、生成されたレポートを確認し、追加機能を活用する方法を説明します。
1.1.1. このガイドでの RHAMT_HOME の使用
このガイドでは、置き換え可能な変数 RHAMT_HOME
を使用して、MTA インストールへのパスを示します。インストールディレクトリーは、MTA ZIP ディストリビューションを解凍した rhamt-cli-4.2.1.Final
ディレクトリーです。
このガイドで RHAMT_HOME
が表示されたら、必ず MTA のインストール先への実際のパスに置き換えてください。
1.2. Migration Toolkit for Applications について
Migration Toolkit for Applications とは
Migration Toolkit for Applications (MTA) は、拡張およびカスタマイズ可能なルールベースのツールで、Java アプリケーションの移行を容易にします。
MTA は、プロジェクトソースディレクトリーやアプリケーションアーカイブを含むアプリケーションアーティファクトを検査し、変更を必要とするエリアを強調表示する HTML レポートを作成します。MTA を使用して、以前のバージョンの Red Hat JBoss Enterprise Application Platform から、または Oracle® WebLogic Server や IBM® WebSphere® Application Server などの他のコンテナーから Java アプリケーションを移行できます。
Migration Toolkit for Applications で移行を単純化する方法
Migration Toolkit for Applications は一般的なリソースを探し、アプリケーションを移行する際のテクノロジーと既知の問題点を明らかにします。この目的は、アプリケーションが使用するテクノロジーの概要を提供し、組織がエンタープライズアプリケーションを Java EE および Red Hat JBoss Enterprise Application Platform に推定、文書化、移行するために使用できる詳細なレポートを提供することです。
詳細情報
Migration Toolkit for Applications の機能、サポートされている設定、システム要件、および使用可能なツールの詳細については、スタートガイド を参照してください。
1.3. CLI について
CLI は、Migration Toolkit for Applications のコマンドラインツールです。これにより、ユーザーはアプリケーションに対する移行およびモダナイゼーションの作業を評価および優先順位付けできます。他のツールのオーバーヘッドなしに分析を強調表示する多数のレポートが提供されます。CLI にはさまざまなカスタマイズオプションが含まれており、MTA 分析オプションを細かく調整したり、外部の自動化ツールと統合したりできます。
第2章 スタートガイド
2.1. 前提条件
CLI をインストールする前に、次の前提条件を満たしていることを確認してください。
- Java プラットフォーム、JRE バージョン 8+
- 最低 4 GB の RAM。8GB 推奨
macOS を実行している場合は、ユーザープロセスの最大数 maxproc
を少なくとも 2048
に設定し、開いているファイルの最大数 maxfiles
を 100000
に設定することを推奨します。
2.2. CLI のインストール
- MTA Download ページ から CLI をダウンロードします。
- .zip ファイルを任意のディレクトリーに解凍します。
解凍したディレクトリーは、このガイドでは RHAMT_HOME
と呼ばれます。
2.3. CLI の実行
アプリケーションに対して MTA を実行するには、次の手順を使用します。
-
ターミナルを開き、
RHAMT_HOME/bin/
ディレクトリーに移動します。 rhamt-cli
スクリプト、または Windows の場合はrhamt-cli.bat
を実行し、適切な引数を指定します。$ ./rhamt-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
: 評価されるアプリケーション。--input
引数の説明を参照してください。 -
--output
: 生成されたレポートの出力ディレクトリー。--output
引数の説明を参照してください。 -
--source
: アプリケーション移行元のテクノロジー。--source
引数の説明を参照してください。 -
--target
: アプリケーション移行先のテクノロジー。--target
引数の説明を参照してください。 -
--packages
: 評価されるパッケージ。この引数は、パフォーマンスを改善するために強く推奨されます。--packages
引数の説明を参照してください。
使用可能なすべてのコマンドライン引数の詳細な説明については、MTA コマンドライン引数 を参照してください。
-
- レポートにアクセスします。
MTA GitHub リポジトリーにあるソースコードディレクトリーとアーカイブを使用するコマンドの例については、以下の MTA コマンドの例 を参照してください。
MTA コマンドの例
アプリケーションアーカイブでの MTA の実行
次のコマンドは、JBoss EAP 5 から JBoss EAP 7 に移行するための サンプル EAR アーカイブ jee-example-app-1.0.0.ear の com.acme
パッケージおよび org.apache
パッケージを解析します。
$ RHAMT_HOME/bin/rhamt-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
ソースコードでの MTA の実行
次のコマンドは、JBoss EAP 6 に移行するための seam-booking-5.2 サンプルソースコードの org.jboss.seam
パッケージを分析します。
$ RHAMT_HOME/bin/rhamt-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
パッケージを解析します。また、cloud-readiness についても評価します。
$ RHAMT_HOME/bin/rhamt-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
MTA プロパティーを上書きする
デフォルトの Fernflower デコンパイラーを上書きするには、コマンドラインで -Dwindup.decompiler
引数を渡します。たとえば、Procyon デコンパイル機能を使用する場合は、以下の構文を使用します。
$ RHAMT_HOME/bin/rhamt-cli -Dwindup.decompiler=procyon --input INPUT_ARCHIVE_OR_DIRECTORY --output OUTPUT_REPORT_DIRECTORY --target TARGET_TECHNOLOGY --packages PACKAGE_1 PACKAGE_2
MTA CLI bash 補完
MTA CLI は、Linux システムの bash 補完を有効にするオプションを提供し、コマンドを入力した時に Tab キーを押して MTA コマンドライン引数 を自動化できます。たとえば、bash 補完を 有効 にすると、以下のように利用可能な引数のリストが表示されます。
$ RHAMT_HOME/bin/rhamt-cli [TAB]
bash 補完を有効にする
現在のシェルで bash 補完を有効にするには、以下のコマンドを実行します。プロンプトが返されたら、CLI の実行 の手順に従います。
$ source RHAMT_HOME/bash-completion/rhamt-cli
永続的な bash 補完を有効にする
次のコマンドを使用すると、再起動後も bash 補完を維持できます。ただし、現在のシェルで bash 補完が必要な場合は、bash 補完を有効にする の手順に従う必要があります。
システムを再起動しても特定のユーザーの bash 補完を有効にするには、そのユーザーの
~/.bashrc
ファイルに以下の行を追加します。source RHAMT_HOME/bash-completion/rhamt-cli
システムの再起動後すべてのユーザーの bash 補完を有効にするには、Applications CLI bash 補完ファイルを
/etc/bash_completion.d/
ディレクトリーにコピーします。デフォルトでは、このディレクトリーは root ユーザーのみが書き込み可能です。# cp RHAMT_HOME/bash-completion/rhamt-cli /etc/bash_completion.d/
MTA ヘルプ
rhamt-cli
コマンドで利用可能な引数の完全な一覧を表示するには、ターミナルを開き、RHAMT_HOME
ディレクトリーに移動して、以下のコマンドを実行します。
$ RHAMT_HOME/bin/rhamt-cli --help
2.4. レポートへのアクセス
Migration Toolkit for Applications を実行すると、コマンドラインの --output
引数を使用して指定する OUTPUT_REPORT_DIRECTORY
にレポートが生成されます。実行が完了すると、ターミナルに次のメッセージとレポートの場所が表示されます。
Report created: OUTPUT_REPORT_DIRECTORY/index.html Access it at this URL: file:///OUTPUT_REPORT_DIRECTORY/index.html
output ディレクトリーには、以下のファイルおよびサブディレクトリーが含まれます。
OUTPUT_REPORT_DIRECTORY/ ├── index.html // Landing page for the report ├── EXPORT_FILE.csv // Optional export of data in CSV format ├── archives/ // Archives extracted from the application ├── mavenized/ // Optional Maven project structure ├── reports/ // Generated HTML reports ├── stats/ // Performance statistics
ブラウザーを使用して、レポート出力ディレクトリーにある index.html
ファイルを開きます。MTA レポートの操作については、レポートを確認する を参照してください。
第3章 レポートを確認する
次のセクションに示すレポートの例は、MTA GitHub ソースリポジトリーにある jee-example-app-1.0.0.ear サンプルアプリケーションの com.acme
パッケージおよび org.apache
パッケージを分析した結果です。
以下のコマンドを使用してレポートが生成されました。
$ RHAMT_HOME/bin/rhamt-cli --input /home/username/rhamt-cli-source/test-files/jee-example-app-1.0.0.ear/ --output /home/username/rhamt-cli-reports/jee-example-app-1.0.0.ear-report --target eap:6 --packages com.acme org.apache
ブラウザーを使用して、レポート出力ディレクトリーにある index.html
ファイルを開きます。これにより、処理されたアプリケーションの一覧が表示されます。各行には、ストーリーポイント、インシデントの数、アプリケーションで発生したテクノロジーの概要が含まれます。
図3.1 アプリケーションリスト

新しいルールが MTA に追加されると、インシデントと予測されるストーリーポイントが変わります。この値は、このアプリケーションをテストする際に表示される値と一致しない場合があります。
以下の表は、このメインの MTA ランディングページからアクセスできるレポートおよびページの一覧です。アプリケーションの名前 jee-example-app-1.0.0.ear をクリックして、アプリケーションレポート を表示します。
Page | アクセス方法 |
---|---|
アプリケーションの名前をクリックします。 | |
ページ上部の | |
ページ上部の | |
Archives shared by multiple applications リンクをクリックします。このリンクは、複数のアプリケーションに共有アーカイブがある場合にのみ利用できることに注意してください。 | |
ページの下部にある Rule providers execution overview リンクをクリックします。 | |
ページの下部にある FreeMarker methods リンクをクリックします。 | |
トップナビゲーションバーの Send Feedback リンクをクリックし、MTA チームにフィードバックを送信できるフォームを開きます。 |
アプリケーションが、他の分析済みアプリケーションとアーカイブを共有している場合は、共有アーカイブからのストーリーポイントの数と、このアプリケーションに固有のストーリーポイントの数が表示されることに注意してください。
図3.2 共有アーカイブ

アプリケーション間で共有されるアーカイブに関する情報は、複数のアプリケーションで共有されるアーカイブ レポートを参照してください。
3.1. アプリケーションレポート
3.1.1. ダッシュボード
アプリケーションのリスト でアプリケーション名をクリックして、レポートランディングページからこのレポートにアクセスします。
ダッシュボードでは、アプリケーションの移行作業全体の概要が表示されます。つまり、以下のようになります。
- カテゴリー別のインシデントおよびストーリーポイント
- 提案された変更の作業レベル別のインシデントおよびストーリーポイント
- パッケージ別のインシデント
図3.3 ダッシュボード

上部のナビゲーションバーには、このアプリケーションの移行に関する追加の詳細を含むさまざまなレポートが一覧表示されます。現在のアプリケーションに適用可能なレポートのみが利用できることに注意してください。
レポート | 説明 |
---|---|
Issues | 注意が必要なすべての問題の簡潔な概要を提供します。 |
Application Details | 移行時に注意する必要がある可能性のあるアプリケーション内で見つかったすべてのリソースの詳細を説明します。 |
Technologies | 機能を基にグループ化されたすべての埋め込みライブラリーを表示します。これにより、各アプリケーションで使用されるテクノロジーを迅速に表示できます。 |
Dependencies Graph | 分析したアプリケーション内にあるすべての Java パッケージの依存関係のグラフを表示します。このグラフは、各依存関係の関係も示しており、ネストになった複数の依存関係を表示できます。 |
Dependencies | アプリケーション内にある Java パッケージの依存関係をすべて表示します。 |
Unparsable |
MTA が想定される形式で解析できなかったすべてのファイルを示しています。たとえば、 |
Remote Services | アプリケーション内で見つかったすべてのリモートサービス参照を表示します。 |
EJB | アプリケーション内の EJB のリストが含まれます。 |
JBPM | 分析中に見つかった JBPM 関連のリソースすべてが含まれます。 |
JPA | アプリケーションで見つかったすべての JPA 関連リソースの詳細が含まれます。 |
Hibernate | アプリケーションで検出されたすべての Hibernate 関連リソースの詳細が含まれています。 |
Server Resources | 入力アプリケーションですべてのサーバーリソース (JNDI リソースなど) を表示します。 |
Spring Beans | 分析中に見つかった Spring Bean の一覧が含まれます。 |
Hard-coded IP Addresses | アプリケーションで見つかったすべてのハードコーディングされた IP アドレスの一覧を提供します。 |
Ignored Files |
特定のルールおよび MTA 設定に基づいてアプリケーションに含まれるファイルを一覧表示し、処理されませんでした。詳細は、 |
About | 現在のバージョンの MTA を説明し、詳細なヘルプリンクを提供します。 |
3.1.2. 問題レポート
Issues リンクをクリックして、Dashboard からこのレポートにアクセスします。
このレポートには、選択した移行パスによって発生したすべての問題に関する詳細情報が含まれます。発生した問題ごとに以下の情報が提供されます。
- 問題を要約するタイトル。
- インシデントの合計数、または問題の発生回数。
- 問題の 1 つののインスタンスを解決する ルールのストーリーポイント。
- この問題を解決するための推定作業量レベル。
- 発生したすべてのインスタンスを解決するための全ストーリーポイント。これは、インシデントごとのストーリーポイントで検出されたインシデントの数を掛けて計算されます。
図3.4 問題レポート

報告された各問題は、タイトルをクリックして追加情報を取得することで拡張できます。以下の情報が含まれています。
- インシデントが発生したファイルの一覧と、各ファイル内のインシデントの数。ファイルが Java ソースファイルの場合は、ファイル名をクリックすると、対応する ソースレポート が表示されます。
- 問題の詳細情報。この説明は問題の概要を示し、既知の解決策を提供し、問題または解決策に関するサポートドキュメントを参照します。
- 問題を生成したルールへの Show Rule というタイトルの直接リンク。
図3.5 拡張された問題

デフォルトでは、問題は 4 つのカテゴリーに分類されます。これらのカテゴリーに関する情報は、タスクカテゴリー を参照してください。
3.1.3. アプリケーション詳細レポート
Application Details リンクをクリックして、ダッシュボードからこのレポートにアクセスします。
レポートには、ストーリーポイント、パッケージごとの Java インシデント、およびアプリケーションで見つかったテクノロジーの発生回数が記載されます。以下は、移行プロセス中に生成されたアプリケーションメッセージの表示です。最後に、プロセス中に分析される各アーカイブにこの情報の内訳が表示されます。
図3.6 アプリケーション詳細レポート

jee-example-app-1.0.0.ear/jee-example-services.jar
を展開して、ストーリーポイント、パッケージごとの Java インシデント、およびこのアーカイブで見つかったテクノロジーの発生数を確認します。この概要は、移行に割り当てられたストーリーポイントの合計で始まり、アーカイブ内の各ファイルに必要な変更の詳細を示す表が続きます。レポートには以下のコラムが含まれます。
列名 | 説明 |
---|---|
名前 | 分析されるファイルの名前。 |
Technology | 分析するファイルのタイプ (例: Decompiled Java File または Properties)。 |
Issues | レビューまたは変更が必要なコードのエリアに関する警告。 |
ストーリーポイント | ファイルの移行に必要な作業レベル。詳細については、ルールのストーリーポイント を参照してください。 |
アーカイブがアプリケーションに複数回複製されると、そのアーカイブはレポートで 1 回だけ一覧表示され、[Included Multiple Times]
でタグ付けされます。
図3.7 アプリケーションでのアーカイブの重複

アプリケーション内で重複するアーカイブのストーリーポイントは、そのアプリケーションの合計ストーリーポイント数に 1 回だけカウントされます。
3.1.4. アプリケーションテクノロジーレポート
Technologies リンクをクリックして、ダッシュボードからこのレポートにアクセスします。
レポートには、解析されたアプリケーションで機能別にグループ化されたテクノロジーが一覧表示されます。これは、アプリケーションに含まれるテクノロジーの概要であり、各アプリケーションの目的を素早く理解できるように設計されています。
以下の図は、jee-example-app
で使用されるテクノロジーを示しています。
図3.8 アプリケーションのテクノロジー

3.1.5. アプリケーション依存関係グラフレポート
分析したアプリケーションの依存関係が、ダッシュボードから Dependencies Graph リンクからアクセスできるこのレポートに表示されます。
これには、サードパーティー JAR を含む WAR および JAR の一覧が含まれ、含まれる各ファイル間の関係をグラフ化します。グラフの各円は、アプリケーションで定義されている一意の依存関係を表します。
以下の図は、jee-example-app
で使用される依存関係と、選択したアプリケーションがグラフの中央にあります。
図3.9 アプリケーションの依存関係のグラフ

依存関係グラフの操作
依存関係グラフは、以下のいずれかを使用して調整できます。
- 依存関係をクリックすると、左上隅にアプリケーションの名前が表示されます。選択されている間、依存関係には、上のイメージの中央に見られるように、それを識別する影付きの円があります。
- 円をクリックしてドラッグすると、再配置されます。マウスを放すと、依存関係がカーソルの位置に固定されます。
- 固定された依存関係をクリックすると、依存関係がアプリケーションからデフォルトの距離に戻ります。
- どこかをダブルクリックすると、グラフ全体がデフォルトの状態に戻ります。
- 説明の項目をクリックすると、選択したタイプのすべての項目が有効または無効になります。たとえば、埋め込み WAR アイコンを選択すると、そのアイコンが有効な場合はすべての埋め込み WAR が無効になり、無効な場合はこれらの依存関係が有効になります。
3.1.6. ソースレポート
jee-example-services.jar
の分析には、JAR 内のファイルと、各サービスに割り当てられた警告およびストーリーポイントが一覧表示されます。このテスト時の com.acme.anvil.listener.AnvilWebLifecycleListener
ファイルには 22 個の警告があり、16 個のストーリーポイントが割り当てられています。ファイルリンクをクリックして詳細を表示します。
- Information セクションは、ストーリーポイントの概要を説明します。
- ファイルのソースコードが続きます。移行が必要な時点でファイルに警告が表示されます。
この例では、警告がさまざまなインポートステートメント、宣言、およびメソッド呼び出しに表示されます。各警告は、問題と実行すべきアクションを記述します。
図3.10 ソースレポート

3.2. テクノロジーレポート
Technologies リンクをクリックして、レポートランディングページからこのレポートにアクセスします。
このレポートは、解析されたアプリケーションに使用されたテクノロジーを機能別にまとめたリストを提供します。これは、テクノロジーがどのように分散されているかを示し、通常は、多数のアプリケーションを分析してアプリケーションをグループ化し、パターンを特定した後にレビューされます。また、各アプリケーションのサイズ、ライブラリー数、およびストーリーポイントの合計も表示されます。
Markup などの任意のヘッダーをクリックすると、結果が降順に並べ替えられます。同じヘッダーを再度選択すると、結果が昇順になります。現在選択されているヘッダーは、並べ替えの方向を示す方向矢印の横に太字で示されます。
図3.11 複数のアプリケーションで使用されるテクノロジー

3.3. Dependencies Graph レポート
Dependencies Graph リンクをクリックして、レポートランディングページからこのレポートにアクセスします。
これには、WAR と JAR の一覧が含まれ、含まれる各ファイル間の関係をグラフ化します。グラフの各円は、アプリケーションで定義されている一意の依存関係を表します。ファイルを複数のアプリケーションに依存関係として組み込むと、それらはグラフにリンクされます。
以下の図では、2 つの異なるグループを確認できます。左側には、複数の JAR を依存関係として定義する単一の WAR が表示されます。右側には、複数の WAR で使用されるものと同じ依存関係があります。この 1 つは、選択された overlord-commons-auth-2.0.11.Final.jar
です。
図3.12 複数のアプリケーション間の依存関係グラフ

依存関係グラフは、以下のいずれかを使用して調整できます。
- 依存関係をクリックすると、左上隅にアプリケーションの名前が表示されます。選択されている間、依存関係には、上のイメージの中央に見られるように、それを識別する影付きの円があります。
- 円をクリックしてドラッグすると、再配置されます。マウスを放すと、依存関係がカーソルの位置に固定されます。
- 固定された依存関係をクリックすると、依存関係がアプリケーションからデフォルトの距離に戻ります。
- どこかをダブルクリックすると、グラフ全体がデフォルトの状態に戻ります。
- 説明の項目をクリックすると、選択したタイプのすべての項目が有効または無効になります。たとえば、埋め込み WAR アイコンを選択すると、そのアイコンが有効な場合はすべての埋め込み WAR が無効になり、無効な場合はこれらの依存関係が有効になります。
3.5. ルールプロバイダー実行の概要
Rule providers execution overview リンクをクリックして、レポートランディングページからこのレポートにアクセスします。
このレポートは、アプリケーションに対して MTA 移行コマンドを実行する際に実行するルールの一覧を提供します。
図3.14 ルールプロバイダー実行の概要

3.6. 使用される FreeMarker 機能およびディレクティブ
Migration Toolkit for Applications FreeMarker メソッド リンクをクリックして、レポートランディングページからこのレポートにアクセスします。
このレポートには、レポートの作成に使用されたすべての登録済み関数およびディレクティブがリストされます。これは、デバッグの目的で、または独自のカスタムレポートを作成する場合に役立ちます。
図3.15 Freemarker 機能およびディレクティブ

3.7. フィードバックフォームを送信
Send feedback リンクをクリックして、レポートランディングページからこのフィードバックフォームにアクセスします。
このフォームでは、製品を評価し、好きなものについて話し、改善のための提案を行うことができます。
図3.16 フィードバックフォームを送信

第4章 レポートを CSV 形式でエクスポートする
MTA には、分類やヒントなどのレポートデータをローカルファイルシステムのフラットファイルにエクスポートする機能があります。export 関数は現在 CSV ファイル形式をサポートし、レポートデータはコンマ (,
) で区切られたフィールドとして示されます。
CSV ファイルは、Microsoft Excel、OpenOffice Calc、LibreOffice Calc などのスプレッドシートソフトウェアでインポートおよび操作できます。スプレッドシートソフトウェアは、MTA レポートから結果データを並べ替え、分析、評価、および管理する機能を提供します。
4.1. レポートをエクスポートする
レポートを CSV ファイルにエクスポートするには、--exportCSV
引数を指定して MTA を実行します。CSV ファイルは、解析される各アプリケーションの、--output
引数で指定されたディレクトリーに作成されます。分析されたすべてのアプリケーションにわたるすべての発見された問題は、レポートのルートディレクトリーにある AllIssues.csv
に含まれます。
アプリケーションレポートからのレポートへのアクセス
CSV レポートをエクスポートすると、すべての CSV 問題を 問題レポート でダウンロードできます。これらの問題は、次の図に示すように、問題レポートの右上のセクションにある Download All Issues CSV ボタンを選択してダウンロードできます。
図4.1 CSV ダウンロードに関する問題レポート

4.2. CSV ファイルのスプレッドシートプログラムへのインポート
- スプレッドシートソフトウェア (例: Microsoft Excel) を起動します。
- File → Open を選択します。
- CSV でエクスポートされるファイルを参照し、これを選択します。
- これで、スプレッドシートソフトウェアでデータを分析できるようになりました。
詳細について、または問題を解決するには、スプレッドシートソフトウェアのヘルプを確認してください。
4.3. CSV データ構造の概要
CSV 形式の出力ファイルには、以下のデータフィールドが含まれます。
- ルール ID
- 指定の項目を生成したルールの ID。
- 問題のタイプ
- ヒント または 分類
- 件名
- classification または hint の件名。このフィールドは、特定の項目の問題を要約します。
- 説明
- 指定項目の問題の詳細な説明。
- リンク
- 問題に関する追加情報を提供する URL。リンクは、リンクとリンクの説明という 2 つの属性で設定されます。
- アプリケーション
- この項目が生成されたアプリケーションの名前。
- ファイル名
- 指定項目のファイルの名前。
- ファイルパス
- 指定項目のファイルパス。
- 行
- 指定項目のファイルの行番号。
- ストーリーポイント
- 特定の項目に割り当てられた、努力のレベルを表すストーリーポイントの数。
第5章 アプリケーションの Maven 化
MTA は、提供されるアプリケーションに基づいて Apache Maven プロジェクト構造を生成する機能を提供します。これにより、適切な依存関係を指定する必要な Maven Project Object Model (POM) ファイルを使用してディレクトリー構造が作成されます。
この機能は、プロジェクトの最終ソリューションを作成する予定はありません。これは、開始点を示し、アプリケーションに必要な依存関係および API を特定することを目的としています。プロジェクトでは、さらにカスタマイズが必要になる場合があります。
5.1. Maven プロジェクト構造を生成する
MTA の実行時に --mavenize
フラグを渡すことにより、提供されたアプリケーションの Maven プロジェクト構造を生成できます。
次の例では、jee-example-app-1.0.0.ear テストアプリケーションを使用して MTA を実行します。
$ RHAMT_HOME/bin/rhamt-cli --input /path/to/jee-example-app-1.0.0.ear --output /path/to/output --target eap:6 --packages com.acme org.apache --mavenize
これにより、Maven プロジェクト構造が /path/to/output/mavenized
ディレクトリーに生成されます。
--input
引数にコンパイルされたアプリケーションを指定する場合に限り、--mavenize
オプションを使用できます。この機能は、ソースコードに対して MTA を実行する場合は利用できません。
--mavenizeGroupId
オプションを使用して、POM ファイルに使用する <groupId>
を指定することもできます。指定しないと、MTA はアプリケーションに適切な <groupId>
の識別を試行するか、デフォルトで com.mycompany.mavenized
になります。
5.2. Maven プロジェクト構造を確認する
/path/to/output/mavenized/APPLICATION_NAME/
ディレクトリーには、以下の項目が含まれます。
-
ルート POM ファイル。これは、最上位ディレクトリーの
pom.xml
ファイルです。 -
BOM ファイル。これは、
-bom
で終わるディレクトリーの POM ファイルです。 - 1 つ以上の アプリケーション POM ファイル。各モジュールには、アーカイブの名前が付けられたディレクトリーに POM ファイルがあります。
サンプルの jee-example-app-1.0.0.ear
アプリケーションは、WAR と複数の JAR を含む EAR アーカイブです。これらのアーティファクトごとに個別のディレクトリーが作成されます。以下は、このアプリケーション用に作成された Maven プロジェクト構造です。
/path/to/output/mavenized/jee-example-app/ jee-example-app-bom/pom.xml jee-example-app-ear/pom.xml jee-example-services2-jar/pom.xml jee-example-services-jar/pom.xml jee-example-web-war/pom.xml pom.xml
生成された各ファイルを確認し、プロジェクトに合わせてカスタマイズします。Maven POM ファイルの詳細は、Apache Maven ドキュメントの Introduction to the POM セクションを参照してください。
ルート POM ファイル
jee-example-app-1.0.0.ear
アプリケーションのルート POM ファイルは /path/to/output/mavenized/jee-example-app/pom.xml
にあります。このファイルは、すべてのプロジェクトモジュールのディレクトリーを特定します。
以下のモジュールは、サンプルの jee-example-app-1.0.0.ear
アプリケーションのルート POM の一覧に記載されています。
<modules> <module>jee-example-app-bom</module> <module>jee-example-services2-jar</module> <module>jee-example-services-jar</module> <module>jee-example-web-war</module> <module>jee-example-app-ear</module> </modules>
必要に応じて、モジュールの一覧がプロジェクトの適切なビルド順序に一覧表示されるように、必ずモジュールの一覧の順番を変更してください。
また、ルート POM は Red Hat JBoss Enterprise Application Platform Maven リポジトリー を使用してプロジェクトの依存関係をダウンロードするように設定されます。
BOM ファイル
BOM (Bill of Materials) ファイルは、-bom
で終わるディレクトリーに生成されます。サンプルアプリケーション jee-example-app-1.0.0.ear
の場合、BOM ファイルは /path/to/output/mavenized/jee-example-app/jee-example-app-bom/pom.xml
にあります。この BOM の目的は、プロジェクトで使用されるサードパーティーの依存関係のバージョンを 1 か所で定義することです。BOM の使用に関する詳細は、Apache Maven ドキュメントの Introduction to the Dependency Mechanism セクションを参照してください。
以下の依存関係は、jee-example-app-1.0.0.ear
アプリケーションの BOM に一覧表示されています。
<dependencyManagement> <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.6</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.5</version> </dependency> </dependencies> </dependencyManagement>
アプリケーション POM ファイル
Maven が可能なアプリケーションモジュールには、POM ファイルが含まれる個別のディレクトリーがあります。ディレクトリー名には、アーカイブタイプに応じてアーカイブの名前と、接尾辞 -jar
、-war
、または -ear
で終わるものが含まれます。
各アプリケーション POM ファイルには、以下を含むモジュールの依存関係が一覧表示されます。
- サードパーティーライブラリー
- Java EE API
- アプリケーションサブモジュール
たとえば、jee-example-app-1.0.0.ear
EAR (/path/to/output/mavenized/jee-example-app/jee-example-app-ear/pom.xml
) の POM ファイルには、以下の依存関係の一覧が記載されます。
<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.6</version> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jee-example-web-war</artifactId> <version>1.0</version> <type>war</type> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jee-example-services-jar</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>jee-example-services2-jar</artifactId> <version>1.0</version> </dependency> </dependencies>
第6章 MTA パフォーマンスの最適化
MTA のパフォーマンスは、ハードウェア設定、アプリケーション内のファイルの数と種類、評価するアプリケーションのサイズと数、アプリケーションにソースコードとコンパイル済みコードのどちらが含まれているかなど、多くの要因に依存します。たとえば、10 MB を超えるファイルは、処理に時間がかかる場合があります。
一般に、MTA はクラスの逆コンパイルに約 40%、ルールの実行に 40% の時間を費やし、残りの時間は他のタスクの処理とレポートの生成に費やします。本セクションでは、MTA のパフォーマンスを改善するために実行できる内容を説明します。
6.1. パフォーマンスを最適化するためのヒント
6.1.1. アプリケーションとコマンドラインの提案
ハードウェアをアップグレードする前に、これらの提案を試してください。
- 可能な場合は、アーカイブではなく、ソースコードに対して MTA を実行します。これにより、追加の JAR およびアーカイブをコンパイルする必要がなくなります。
-
RHAMT_HOME/bin/rhamt-cli
コマンドラインで--packages
引数を使用して、MTA によって評価されるパッケージのコンマ区切りリストを指定します。この引数を省略すると、MTA はすべてを逆コンパイルするため、パフォーマンスに大きな影響があります。 -
--excludeTags
引数を指定すると、処理から除外できます。 - プロプライエタリーパッケージや含まれている依存関係などの不要なパッケージやファイルの逆コンパイルや解析は回避してください。詳細については、ファイルとパッケージを除外するように MTA を設定する を参照してください。
- 大規模なアプリケーションを分析する際に ulimit を増やします。Red Hat Enterprise Linux でこれを行う方法は、Red Hat Enterprise Linux でオープンファイルの数を制限する を参照してください。
- ラップトップまたはデスクトップマシンよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。
6.1.2. ハードウェアアップグレードの提案
上記のアプリケーションとコマンドラインの提案がパフォーマンスを改善しない場合は、ハードウェアをアップグレードが必要な場合があります。
- ラップトップまたはデスクトップよりも優れたリソースを持つサーバーにアクセスできる場合は、そのサーバーで MTA を実行することを検討してください。
- 逆コンパイルが必要な非常に大規模なアプリケーションには、大容量のメモリーが必要です。8 GB の RAM が推奨されます。これにより、3 ~ 4 GB の RAM が JVM で使用できるようになります。
- シングルコアまたはデュアルコアからクアッドコアの CPU プロセッサーへのアップグレードにより、パフォーマンスが向上します。
- ディスク領域と断片化はパフォーマンスに影響を及ぼす可能性があります。高速ディスク、特にソリッドステートドライブ (SSD) で、4 GB を超える最適化されたディスク領域があると、パフォーマンスが向上します。
6.2. ファイルとパッケージを除外するように MTA を設定する
6.2.1. パッケージを除外する
MTA は、逆コンパイルおよび分析中にパッケージを除外して、パフォーマンスを向上させることができます。これらのパッケージへの参照は、アプリケーションのソースコードで引き続き検出されますが、独自のクラスの逆コンパイルと分析を回避します。
定義された値に一致するパッケージはすべて除外されます。たとえば、com.acme.example
と com.acme.roadrunner
を除外するには、com.acme
のみを指定する必要があります。
パッケージは、次のいずれかの方法を使用して除外できます。
6.2.2. ファイルを除外する
MTA は、スキャンやレポートの生成中に、含まれるライブラリーや依存関係などの特定のファイルを除外できます。無視されるファイルは、.rhamt-ignore.txt
または .windup-ignore.txt
で終わるファイル内で、無視される場所 の 1 つに定義されています。
これらのファイルには、除外する名前の詳細を示す正規表現文字列が含まれ、1 行に 1 つのファイルがリストされます。たとえば、ライブラリー ant.jar
と Example
で始まる Java ソースファイルを除外するには、次のファイルを使用します。
.*ant.jar .*Example.*\.java
6.2.3. 除外を検索する場所
MTA は以下の場所を検索します。
-
~/.rhamt/ignore/
-
~/.windup/ignore/
-
RHAMT_HOME/ignore/
-
--userIgnorePath
引数で指定されたファイルおよびディレクトリー
これらの各ファイルは、除外するコンテンツの種類に応じて、パッケーを除外する または ファイルを除外する で指定されたルールに従う必要があります。
付録A 参考資料
A.1. MTA コマンドライン引数
以下は、利用可能な MTA コマンドライン引数の詳細な説明です。
プロンプトを表示せずに MTA コマンドを実行するには (スクリプトから実行する場合など)、--batchMode
を使用して指定されていないパラメーターのデフォルト値を取得し、--overwrite
を使用して出力ディレクトリーを強制的に削除します。また、必要な --input
および --target
引数を必ず指定してください。
詳細については、各引数の説明を参照してください。
引数 | 説明 |
---|---|
--additionalClassPath | クラスパスに追加する追加の JAR ファイルまたはディレクトリーのスペース区切りリスト。逆コンパイルやその他の解析に使用できます。 |
--addonDir | 指定したディレクトリーをカスタムアドオンリポジトリーとして追加します。 |
--batchMode | MTA を非対話モードで実行すべきように指定するフラグ。確認をプロンプトなしで実行します。このモードは、コマンドラインに渡さないパラメーターのデフォルト値を取ります。 |
--debug | デバッグモードで MTA を実行するフラグ。 |
--disableTattletale |
Tattletale レポートの生成を無効にするフラグ。 |
--discoverPackages | 入力バイナリーアプリケーションで利用可能なパッケージをすべて表示するフラグ。 |
--enableClassNotFoundAnalysis | クラスパスで利用できない Java ファイルの分析を有効にするフラグ。分析時に一部のクラスが利用できない場合は、これは使用しないでください。 |
--enableCompatibleFilesReport | Compatible Files レポートの生成を有効にするフラグ。問題が検出されない状態ですべてのファイルを処理するため、このレポートには大規模なアプリケーションの処理に時間がかかる場合があります。 |
--enableTattletale |
各アプリケーションの Tattletale レポートの生成を有効にするフラグ。このオプションは、 |
--excludePackages |
評価から除外するパッケージのスペース区切りの一覧。たとえば、 |
--excludeTags |
除外するタグのスペースで区切られた一覧。指定されている場合は、これらのタグを持つルールは処理されません。タグの全一覧を表示するには、 |
--explodedApp | 指定された入力ディクショナリーに 1 つののアプリケーションのソースファイルが含まれていることを示すフラグ。詳細については、入力ファイルの引数テーブル を参照してください。 |
--exportCSV |
レポートデータをローカルファイルシステムの CSV ファイルにエクスポートするフラグ。MTA は、 |
--help | MTA ヘルプメッセージを表示します。 |
--immutableAddonDir | 指定したディレクトリーを、読み取り専用のアドオンリポジトリーとして追加します。 |
--includeTags |
使用するタグのスペースで区切られたリスト。指定されると、これらのタグを持つルールのみが処理されます。タグの全一覧を表示するには、 |
--input | 分析する 1 つ以上のアプリケーションを含むファイルまたはディレクトリーへのパスのスペースで区切られたリスト。この引数は必須です。詳細については、入力の指定 を参照してください。 |
--install |
インストールするアドオンを指定します。構文は |
--keepWorkDirs | グラフデータベースや展開されたアーカイブなどの一時作業ファイルを削除しないように MTA に指示するフラグ。これはデバッグに役立ちます。 |
--list | インストールされたアドオンを一覧表示するフラグ。 |
--listSourceTechnologies | 利用可能なすべてのソーステクノロジーを一覧表示するフラグ。 |
--listTags | 使用可能なタグをすべて表示するフラグ。 |
--listTargetTechnologies | 利用可能なすべてのターゲットテクノロジーを一覧表示するフラグ。 |
--mavenize |
アプリケーションの構造および内容に基づいて Maven プロジェクトディレクトリー構造を作成するフラグ。これにより、適切な Java EE API とプロジェクトモジュール間の正しい依存関係を使用して |
--mavenizeGroupId |
|
--online | フラグは、それを必要とする機能のネットワークアクセスを許可します。現在、外部リソースに対する XML スキーマのみの検証は、インターネットアクセスに依存します。これには、パフォーマンスの低下があることに注意してください。 |
--output | MTA が生成したレポート情報を出力するディレクトリーへのパスを指定します。詳細については、出力ディレクトリーの指定 を参照してください。 |
--overwrite |
警告 重要な情報が含まれるレポート出力ディレクトリーを指定しないでください。 |
--packages | MTA によって評価されるパッケージのスペース区切りの一覧。この引数を使用することは強く推奨されます。詳細については、パッケージの選択 を参照してください。 |
--remove |
指定したアドオンを削除します。構文は |
--skipReports |
HTML レポートが生成されないことを示すフラグ。この引数の一般的な用途は、 |
--source |
移行元の 1 つ以上のソーステクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りの一覧。この引数は、 |
--sourceMode | 評価するアプリケーションに、コンパイルされたバイナリーではなくソースファイルが含まれていることを示すフラグ。詳細については、入力ファイルの引数テーブル を参照してください。 |
--target |
移行先の 1 つ以上のターゲットテクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りの一覧。この引数は、 |
--userIgnorePath |
|
--userRulesDirectory |
|
--version | MTA バージョンを表示します。 |
A.1.1. 入力の指定
分析する 1 つ以上のアプリケーションを含むファイルまたはディレクトリーへのパスのスペースで区切られたリスト。この引数は必須です。
使用方法
--input INPUT_ARCHIVE_OR_DIRECTORY [...]
--input
引数に指定された入力ファイルタイプがファイルであるかディクショナリーであるかに応じて、指定された追加の引数に応じて次のように評価されます。
- ディレクトリー
--explodedApp --sourceMode 引数なし ディレクトリーは 1 つのアプリケーションとして評価されます。
ディレクトリーは 1 つのアプリケーションとして評価されます。
各サブディレクトリーはアプリケーションとして評価されます。
- ファイル
--explodedApp --sourceMode 引数なし 引数は無視されます。ファイルは 1 つのアプリケーションとして評価されます。
ファイルは圧縮プロジェクトとして評価されます。
ファイルは 1 つアプリケーションとして評価されます。
A.1.2. 出力ディレクトリーの指定
MTA が生成したレポート情報を出力するディレクトリーへのパスを指定します。
使用方法
--output OUTPUT_REPORT_DIRECTORY
-
省略すると、レポートは
INPUT_ARCHIVE_OR_DIRECTORY.report
ディレクトリーに生成されます。 出力ディレクトリーが存在する場合は、次のメッセージが表示されます (デフォルトは N)。
Overwrite all contents of "/home/username/OUTPUT_REPORT_DIRECTORY" (anything already in the directory will be deleted)? [y,N]
ただし、--overwrite
引数を指定すると、MTA はディレクトリーの削除と再作成を続行します。詳細は、この引数の説明を参照してください。
A.1.3. ソーステクノロジーの設定
移行元の 1 つ以上のソーステクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りの一覧。この引数は、--target
引数とともに、使用されるルールセットを判断するのに役立ちます。--listSourceTechnologies
引数を使用して、利用可能なソースを一覧表示します。
使用方法
--source SOURCE_1 SOURCE_2
--source
引数は、Maven バージョン範囲の構文 に続くバージョンサポートを提供するようになりました。これにより、指定されたバージョンに一致するルールセットのみを実行するように MTA が指示されます。例: --source eap:5
JBoss EAP に移行する場合、バージョン (例: eap:6
) を指定してください。eap
のみを指定すると、移行パスに関連しないものを含め、すべてのバージョンの JBoss EAP にルールセットが実行されます。
ソースプラットフォームに適した JBoss EAP バージョンについては、MTA スタートガイド の サポート対象の移行パス を参照してください。
A.1.4. ターゲットテクノロジーの設定
移行先の 1 つ以上のターゲットテクノロジー、サーバー、プラットフォーム、またはフレームワークのスペース区切りの一覧。この引数は、--source
引数とともに、使用されるルールセットを判断するのに役立ちます。このオプションを指定しないと、ターゲットを選択するように求められます。--listTargetTechnologies
引数を使用して、利用可能なターゲットを一覧表示します。
使用方法
--target TARGET_1 TARGET_2
--target
引数は、Maven バージョン範囲の構文 に続くバージョンサポートを提供するようになりました。これにより、指定されたバージョンに一致するルールセットのみを実行するように MTA が指示されます。例: --target eap:7
JBoss EAP に移行する場合は、必ずバージョンをターゲットに指定してください (例: eap:6
)。eap
のみを指定すると、移行パスに関連しないものを含め、すべてのバージョンの JBoss EAP にルールセットが実行されます。
ソースプラットフォームに適した JBoss EAP バージョンについては、MTA スタートガイド の サポート対象の移行パス を参照してください。
A.1.5. パッケージの選択
MTA によって評価されるパッケージのスペース区切りの一覧。この引数を使用することは強く推奨されます。
使用方法
--packages PACKAGE_1 PACKAGE_2 PACKAGE_N
-
多くの場合、関心があるのは、カスタムアプリケーションクラスパッケージの評価で、標準の Java EE パッケージやサードパーティーのパッケージではありません。
PACKAGE_N
引数はパッケージ接頭辞で、すべてのサブパッケージがスキャンされます。たとえば、パッケージcom.mycustomapp
およびcom.myotherapp
をスキャンするには、コマンドラインで--packages com.mycustomapp com.myotherapp
引数を使用します。 -
org.apache
などの標準の Java EE サードパーティーソフトウェアにパッケージ名を指定することはできますが、通常は移行作業に影響しないため、追加しないことが推奨されます。
--packages
引数を省略すると、アプリケーションのすべてのパッケージがスキャンされ、パフォーマンスに影響を及ぼす可能性があります。この引数には、1 つ以上のパッケージを指定することが推奨されます。パフォーマンスを改善する方法に関するその他のヒントについては、MTA パフォーマンスの最適化 を参照してください。
A.2. ルールのストーリーポイント
A.2.1. ストーリーポイントとは
ストーリーポイント は、アジャイルソフトウェア開発で一般的に使用される抽象メトリクスで、機能や変更を実装するのに必要な 作業量 を予測します。
Migration Toolkit for Applications はストーリーポイントを使用して、特定のアプリケーションコンストラクトとアプリケーション全体を移行するために必要な作業のレベルを表現します。必ずしも工数に変換される訳ではありませんが、この値はタスク全体で一貫性を持たせる必要があります。
A.2.2. ルールにおけるストーリーポイントの見積方法
ルールのストーリーポイントの作業レベルを見積もることは複雑です。以下は、ルールに必要な作業レベルを見積もる際に MTA が使用する一般的なガイドラインです。
作業レベル | ストーリーポイント | 説明 |
---|---|---|
Information | 0 | 移行の優先度が非常に低いか、優先度のない情報警告。 |
Trivial | 1 | 移行は、些細な変更または単純なライブラリースワップであり、API の変更はないか、最小限となります。 |
Complex | 3 | 移行タスクに必要な変更は複雑ですが、解決策が文書化されています。 |
Redesign | 5 | 移行タスクでは、API が大幅に変更され、再設計または完全なライブラリーの変更が必要になります。 |
Rearchitecture | 7 | 移行には、コンポーネントまたはサブシステムの完全な再アーカイブが必要です。 |
Unknown | 13 | 移行ソリューションは不明なため、完全な再書き込みが必要になる場合があります。 |
A.2.3. タスクカテゴリー
作業量レベルに加えて、移行タスクを分類してタスクの重大度を示すことができます。移行作業の優先順位付けに役立つ問題をグループ化するために、以下のカテゴリーが使用されます。
- 必須
- 移行を成功させるには、タスクを完了する必要があります。変更が行われないと、生成されるアプリケーションはビルドまたは実行に成功しません。たとえば、ターゲットプラットフォームでサポートされないプロプライエタリー API の置き換え例が含まれます。
- 任意
- 移行タスクが完了しない場合、アプリケーションは動作しますが、結果が最適になるとは限りません。移行時に変更が行われない場合は、移行の完了後すぐにスケジュールに配置することが推奨されます。これには、EJB 2.x コードの EJB 3 へのアップグレードが挙げられます。
- Potential
- 移行プロセス中にタスクを調べる必要があります。しかし、移行を成功させるためにタスクが必須かどうかを判断するのに十分な詳細情報がありません。これの例は、直接互換性のあるタイプがないサードパーティーのプロプライエタリタイプの移行です。
- Information
-
タスクは、特定のファイルの存在を通知するために含まれています。これらは、モダナイゼーション作業の一部として検証または変更する必要がある場合がありますが、通常は変更が必要ありません。これには、ロギング依存関係または Maven
pom.xml
があります。
タスクの分類に関する詳細は、ルール開発ガイドの カスタムルールカテゴリーの使用 を参照してください。
A.3. 関連情報
A.3.1. 参加する
Migration Toolkit for Applications が、自分のものを含むほとんどのアプリケーション設定とサーバー設定に対応できるように、以下の項目のいずれかを支援できます。
- jboss-migration-feedback@redhat.com にメールを送信し、MTA 移行ルールが対象とすべき内容をご連絡ください。
- 移行ルールをテストするためのアプリケーションの例を指定します。
移行が困難なアプリケーションコンポーネントおよび問題の領域を特定してください。
- これらの問題がある移行領域について簡単な説明を記入する。
- 問題の移行領域を解決する方法を説明する簡単な概要を記述します。
- アプリケーションで Migration Toolkit for Applications を試行します。発生している 問題を必ず報告 してください。
Migration Toolkit for Applications ルールリポジトリーへの貢献。
- Migration Toolkit for Applications ルールを記述して、移行プロセスを識別または自動化します。
- 新規ルールのテストを作成します。
- 詳細は、ルール開発ガイド を参照してください。
プロジェクトのソースコードへの貢献。
- コアルールを作成します。
- MTA のパフォーマンスまたは効率が向上します。
- 環境の設定およびプロジェクトの設定方法に関する詳細は、Core Development Guide を参照してください。
あらゆるレベルの貢献が大きく評価されます。
A.3.2. 重要なリンク
- MTA フォーク: https://developer.jboss.org/en/windup
MTA JIRA 問題トラッカー
- MTA メーリングリスト: jboss-migration-feedback@redhat.com
- Twitter 上の MTA: @JBossWindup
-
MTA IRC チャネル: Server FreeNode (
irc.freenode.net
) (チャンネル#windup
(transcripts))
A.3.3. MTA の既知の問題
MTA の既知の問題は、Open MTA の問題 で確認できます。
A.3.4. MTA の問題を報告する
Migration Toolkit for Applications は、問題追跡システムとして JIRA を使用します。MTA の実行で問題が発生した場合は、JIRA Issue を作成してください。
JIRA で問題を作成するために、すでに JIRA アカウントにサインアップする必要があります。
A.3.4.1. JIRA の問題を作成する
ブラウザーを開き、JIRA の Create Issue ページに移動します。
ログインしていない場合は、ページの右上にある Log In リンクをクリックし、認証情報を入力します。
以下のオプションを選択し、Next ボタンをクリックします。
プロジェクト
コア MTA の問題については、Red Hat Application Migration Toolkit (WINDUP) を選択してください。
MTA ルールの問題については、Red Hat Application Migration Toolkit ルール (WINDUPRULE) を選択してください。
- 問題のタイプ: バグ
次の画面では、以下のフィールドを入力します。
- Summary: 問題またはその問題の簡単な説明を入力します。
- Environment: オペレーティングシステム、Java のバージョン、およびその他の関連情報の詳細を指定します。
- Description: 問題の詳細情報を指定します。ログと例外トレースを必ず含めてください。
- Attachment: 問題を生じるアプリケーションまたはアーカイブに機密情報が含まれておらず、MTA 開発チームと共有する場合は、browse ボタンを使用して問題を添付します。
- Create ボタンをクリックして JIRA の問題を作成します。
改訂日時: 2023-01-23 07:40:33 +1000