次の方法で共有


Java バージョン 7 の Azure Migrate アプリケーションとコード評価 (プレビュー)

この記事は、Java バージョン 7.x の次世代の Azure Migrate アプリケーションとコード評価を対象にしています。 このバージョンはプレビュー段階です。 以前の安定バージョンであるバージョン 6.x については、 Java 用の Azure Migrate アプリケーションとコード評価に関するページを参照してください。

この記事では、Java 用 Azure Migrate アプリケーションとコードの評価ツールを使って、任意の種類の Java アプリケーションを評価およびプラットフォーム変更する方法について説明します。 このツールを使うと、Azure へのプラットフォーム変更と移行に関するアプリケーションの準備状況を評価できます。 このツールはコマンド ライン インターフェイス (CLI) として提供され、Java アプリケーションのバイナリとソース コードを評価し Azure の再プラットフォーム化と移行の機会を特定します。 一般的なユース ケースとコード パターンが識別されて、推奨される変更が提案され、大規模な Java アプリケーションの最新化とプラットフォーム変更に役立ちます。

このツールは、静的コード分析によってアプリケーションのテクノロジの使用状況を検出し、作業量の見積もりを提供し、コードのプラットフォーム変更の時間を短縮します。 この評価は、Java アプリケーションの優先順位付けと Azure への移行に役立ちます。 一連のエンジンとルールにより、このツールは、Java 11、Java 17、Jakarta EE、Spring、Hibernate、Java Message Service (JMS) などのさまざまなテクノロジを検出して評価できます。 ツールは次に、特定の Azure プラットフォーム変更ルールを使用した、Java アプリケーションのさまざまな Azure ターゲット (Azure App Service、Azure Kubernetes Service、Azure Container Apps) へのプラットフォーム変更を支援します。

このツールは、Red Hat によって作成および主導される 、Cloud Native Computing Foundation プロジェクト Konveyor のコンポーネントセットに基づいています。

概要

このツールは、組織がコストの削減と迅速なイノベーションが可能な方法で Java アプリケーションを最新化できるように設計されています。 このツールは、高度な分析手法を使って、Java アプリケーションの構造と依存関係を把握し、アプリケーションをリファクタリングして Azure に移行する方法に関するガイダンスを提供します。

これを使用すると、次の作業を実行できます。

  • テクノロジの使用状況を検出する: アプリケーションで使われているテクノロジをすばやく確認します。 検出は、ドキュメントが十分ではないレガシ アプリケーションで使われているテクノロジを知りたい場合に便利です。
  • 特定のターゲットに対してコードを評価する: Azure の特定のターゲットに対してアプリケーションを評価します。 アプリケーションを Azure にプラットフォーム変更するために必要な作業と変更を調べます。

サポート対象

このツールには、さまざまな Azure サービスにデプロイして使用できるように、アプリケーションのプラットフォーム変更を支援するためのルールが含まれています。

Azure Migrate のアプリケーションとコード評価で使用される規則は、"ターゲット" に基づいてグループ化されます。 ターゲットは、アプリケーションの実行場所または方法、および一般的なニーズと期待される内容です。 アプリケーションを評価するときは、複数のターゲットを選択できます。 次の表で、使用可能なターゲットについて説明します。

ターゲット名 説明 移行先
Azure App Service Azure App Service にアプリをデプロイするためのベスト プラクティス。 azure-appservice
Azure Kubernetes サービス Azure Kubernetes Service にアプリをデプロイするためのベスト プラクティス。 azure-aks
Azure コンテナー アプリ Azure Container Apps にアプリをデプロイするためのベスト プラクティス。 azure-container-apps
クラウドの準備 アプリケーション クラウド (Azure) を準備するための一般的なベスト プラクティス。 cloud-readiness
Linux アプリケーションを Linux に対応させるための一般的なベスト プラクティス。 linux
OpenJDK 11 Java 11 で Java 8 アプリケーションを実行するための一般的なベスト プラクティス。 openjdk11
OpenJDK 17 Java 17 で Java 11 アプリケーションを実行するための一般的なベスト プラクティス。 openjdk17
OpenJDK 21 Java 21 で Java 17 アプリケーションを実行するための一般的なベスト プラクティス。 openjdk21

このツールは、クラウドの準備と関連する Azure サービスを評価するときに、さまざまな Azure サービスの潜在的な使用状況に関する有用な情報を報告することもできます。 次の一覧は、対象となるサービスの一部を示しています。

  • Azure のデータベース
  • Azure Service Bus(アジュール サービス バス)
  • Azure ストレージ
  • Azure Content Delivery Network
  • Azure Event Hubs
  • Azure Key Vault
  • Azure Front Door(アジュール フロント ドア)

ダウンロードしてインストールする

appcat CLI を使用するには、環境に固有のパッケージをダウンロードし、環境内に必要な依存関係を持っている必要があります。 appcat CLI は、Intel、Arm、Apple シリコン ハードウェアのいずれでも、Windows、Linux、Mac などの環境で実行されます。 JDK 要件については、 Microsoft Build of OpenJDK を使用することをお勧めします。

オペレーティングシステム (OS) アーキテクチャ ダウンロードのリンク 他のファイル
x64
ウィンドウズ x64 ダウンロード sha256 / sig
macOS x64 ダウンロード sha256 / sig
Linux x64 ダウンロード sha256 / sig
AArch64
ウィンドウズ AArch64 / ARM64 ダウンロード sha256 / sig
macOS Apple シリコン ダウンロード sha256 / sig
Linux AArch64 / ARM64 ダウンロード sha256 / sig

前提条件

AppCAT をインストールする

appcat をインストールするには、プラットフォームに適した zip ファイルをダウンロードします。 ファイルをダウンロードすると、オペレーティング システムに応じて、 .tar.gz (Linux/macOS) または .zip ファイル (Windows) が見つかります。

ダウンロードしたファイルからバイナリを抽出します。 次のフォルダー構造が表示されます:

/azure-migrate-appcat-for-java-cli-<OS>-<architecture>-<release-version>-preview/
├── appcat.exe (Windows) / appcat (Linux/macOS)
├── samples/
├── fernflower.jar
├── LICENSE
├── NOTICE.txt
├── maven.default.index
├── jdtls/
├── static-report/
├── rulesets/
├── readme.md
└── readme.html

AppCAT を実行する

ターミナル内の任意の場所から appcat を実行するには、目的の場所にアーカイブを抽出します。 次に、 PATH 環境変数を更新して、アーカイブを抽出したディレクトリを含めます。

appcat バイナリが呼び出されると、最初に、PATH環境変数で指定された実行可能フォルダーでその依存関係が検索されます。 依存関係が見つからない場合は、ユーザーのホーム ディレクトリ (Linux/Mac の 場合は ~/.appcat )、Windows では \.appcat%USERPROFILE% にフォールバックします。

使用方法

サブコマンド

AppCAT には、次の 2 つのサブコマンドが用意されています:

  • analyze: 入力ソース コードまたはバイナリに対してソース コード分析を実行します。
  • transform: XML ルールを以前のバージョン (6 以前) からこのバージョンで使用される YAML 形式に変換します。

macOS ユーザーの場合: アプリを実行しようとしたときに Apple could not verify を示すエラーが発生した場合は、次のコマンドを使用してこのエラーを解決できます。

xattr -d -r com.apple.quarantine /path/to/appcat_binary

次に例を示します。

xattr -d -r com.apple.quarantine $HOME/.appcat/appcat

Analyze サブコマンド

analyze サブコマンドを使用すると、ソース コードとバイナリ分析を実行できます。

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

./appcat analyze --input=<path-to-source-code> --output=<path-to-output-directory> --target=azure-appservice,cloud-readiness --overwrite

--input フラグはソース コード ディレクトリまたはバイナリ ファイルを指し、--output は分析結果を格納するディレクトリを指す必要があります。

分析フラグの詳細については、次のコマンドを使用します。

./appcat analyze --help

AppCAT で使用可能なターゲットを確認するには、次のコマンドを使用します。

./appcat analyze --list-targets

このコマンドでは次の出力が生成されます。

available target technologies:
azure-aks
azure-appservice
azure-container-apps
cloud-readiness
linux
openjdk11
openjdk17
openjdk21

複数のアプリケーションの分析

AppCAT では、コマンド実行ごとに複数のアプリケーション分析がサポートされます。 1 つのコマンドで複数のアプリケーションを分析するために、 --input フラグの入力パスのコンマ区切りの一覧を指定できます。 出力ディレクトリと静的レポートには、すべてのアプリケーションの統合された分析結果が含まれます。

複数のアプリケーションを分析するには、次のコマンドを使用します。

./appcat analyze --input=<path-to-source-A>,<path-to-source-B>,<path-to-source-C> --output=<path-to-output-ABC> --target=<target-name>

AppCAT では、 --bulk オプションを使用して、既存の出力ディレクトリと静的レポートにアプリケーション分析を段階的に追加することもできます。 --bulk オプションを使用する場合は、同じ出力に書き込むすべてのコマンド実行で一貫して使用する必要があります。

複数の入力パスを指定すると、 --bulk が既定で有効になります。

既存の静的レポートにアプリケーション分析を段階的に追加するには、次のコマンドを使用します。

./appcat analyze --input=<path-to-source-A>,<path-to-source-B>,<path-to-source-C> --output=<path-to-output-ABC> --target=<target-name>
./appcat analyze --bulk --input=<path-to-source-D> --output=<path-to-output-ABC> --target=<target-name>
./appcat analyze --bulk --input=<path-to-source-E> --output=<path-to-output-ABC> --target=<target-name>

transform サブコマンド

transform サブコマンドを使用すると、6.x バージョンで使用されていた以前の appcat XML 規則を、このバージョン 7.x で使用される新しい YAML 形式に変換できます。

ルールを変換するには、次のコマンドを使用します。

./appcat transform rules --input=<path-to-xml-rules> --output=<path-to-output-directory>

--input フラグは XML 規則を含むファイルまたはディレクトリを指し、--output フラグは変換された YAML ルールの出力ディレクトリを指す必要があります。

サンプル

展開されたフォルダー内のスクリプトに対するファイルのアクセス許可が、実行を許可するように設定されていることを確認します。

samples ディレクトリには、さまざまな種類の分析を実行するための次のスクリプトがあります。

  • run-assessment: Airsonic を Tomcat 上の Azure App Service に移行するためのコード評価と手順を含むレポートを提供します。
  • run-assessment-transform-rules: Windup XML ルールをアナライザー lsp 互換の YAML ルールに変換します。
  • run-assessment-custom-rules: カスタム ルールを使用してコード評価レポートを提供します (XML を YAML に変換します)。
  • run-assessment-openjdk21: Airsonic を OpenJDK 21 に移行するためのコード評価と手順を含むレポートを生成します。
  • run-assessment-package-only: 特定のパッケージを評価してレポートを生成します。

これらのスクリプトは 、Airsonic-Advanced サンプル プロジェクト (音楽コレクションにアクセスして共有できるようにする、コミュニティ主導の Web ベースのメディア ストリーミング) で使用することを目的としています。

次のコマンドを使用して、アプリケーション リポジトリを手動で複製できます。

git clone https://github.com/airsonic-advanced/airsonic-advanced.git

複製後、評価スクリプトを実行するときに、複製されたフォルダーへのパスを指定します。 オペレーティング システムに応じて、次の例に示すように、適切なスクリプトを実行します:

スクリプトを実行する前に、Airsonic Advanced プロジェクトをローカル パスに複製していることを確認します。

./samples/run-assessment <path-to-airsonic-advanced>

レポートが自動的に生成され、起動されます。 レポートは ../samples/report-* (Linux/macOS) または ..\samples\rreport-* (Windows) にあります。

分析の概要

レポートのランディング ページには、分析されたすべてのアプリケーションの概要ビューが表示されます。 ここから、個々のアプリケーション レポートに移動して、詳細な結果を調べることができます。

appcat 概要レポートのスクリーンショット。

右上隅の [ Copilot に質問 する] ボタンをクリックすると、Visual Studio Code の GitHub Copilot App Modernization for Java 拡張機能にリダイレクトされます。 この拡張機能は、AppCAT と GitHub Copilot の AI 機能を利用して、Java アプリケーションを Azure に移行するための主要な機能として、アプリ評価とコード修復の両方を提供します。

評価レポート

評価レポートには、アプリケーションを Azure に正常に移行するために対処する必要がある、Azure の準備状況、クラウド ネイティブ、Java の最新化のさまざまな側面を分類した問題の一覧が表示されます。

問題 は重大度 ( 必須省略可能、または 潜在的 ) 別に分類され、影響を受けたコード行の数が含まれます。

[依存関係テクノロジ] タブには、アプリケーション内で使用されるライブラリとテクノロジが表示されます。

AppCAT 評価レポートのスクリーンショット。

特定の問題の詳細情報

問題ごとに、選択するだけで詳細情報 (問題の詳細、ルールの内容など) を取得できます。 また、この問題の影響を受けるすべてのファイルの一覧も表示されます。

AppCAT 問題の詳細レポートのスクリーンショット。

次に、問題の影響を受けるファイルまたはクラスごとに、ソース コードに移動して、問題を作成したコード行を強調表示できます。

AppCAT 問題コード レポートのスクリーンショット。

リリース ノート

7.6.0.7

このリリースには、次の修正と機能強化が含まれています。

  • Gradle ベースの Spring アプリの分析をサポートします。
  • Open Liberty プロジェクトの分析のサポート。
  • 評価中に処理されたルールの数を表示して、評価の進行状況を表示します。
  • 前提条件から Maven を削除しました。
  • airsonic.warを、リリースされた成果物のサンプル アプリケーションとしてairsonic-advancedに置き換えられました。

7.6.0.6

このリリースには、次の修正と機能強化が含まれています。

  • 既定では、既定の .appcat-ignore ファイルがリリース パッケージに含まれるようになりました。 このファイルにより、分析する必要のない指定したフォルダーまたはパスがツールによって除外されます。
  • full モード (--mode を使用して指定) を使用する場合に、レポートに依存関係が見つからない問題を修正しました。
  • ターゲットが指定されていない場合に、AppCAT でサポートされるターゲットに対するスコープ分析。
  • 分析中にコメント行を無視しました。
  • XML ルールの正しくない場所を修正しました。

7.6.0.5

このリリースには、次の修正と機能強化が含まれています。

  • --input フラグは複数の値を受け入れるようになり、1 回のコマンド実行で複数のアプリケーションを分析できるようになりました。
  • 静的レポートは、読みやすくするために問題リストを分類します。
  • ユーザーは、ユーザーのホーム ディレクトリ以外のディレクトリに AppCAT をインストールできるようになりました。
  • analyze--bulkの両方で--skip-static-reportを実行して複数の出力ファイルを生成できない問題を修正しました。
  • Javaプロバイダーが起動されていない場合、--bulk--rulesで分析する際に発生する失敗を解決しました。
  • --packages フラグを使用するときに、指定したパッケージが見つからなかった場合に分析が失敗する問題を修正しました。
  • --exclude-paths フラグは非推奨です。 ファイルまたはディレクトリを除外するには、入力ディレクトリまたはインストール ディレクトリに配置された .appcat-ignore ファイル (glob パターンをサポート) を使用します。

7.6.0.4

このリリースには、次の修正と機能強化が含まれています。

  • テレメトリ収集をサポートします。 テレメトリを無効にするには、 --disable-telemetry フラグを使用します。
  • CLI コマンド形式をリファクタリングして、わかりやすくします。
    • --source フラグを更新し、--source <source1> --source <source2> ... から --source <source1>,<source2>,... に変更します。
    • --target フラグを更新し、--target <target1> --target <target2> ... から --target <target1>,<target2>,... に変更します。
    • --rules フラグを更新し、--rules <rule1> --rules <rule2> ... から --rules <rule1>,<rule2>,... に変更します。
    • --maven-settings フラグを次の値に更新します。--custom-maven-settings
    • --limit-code-snips フラグを次の値に更新します。--code-snips-number
    • --json-output フラグを削除し、--output-format フラグを使用し、出力形式として 'yaml' または 'json' を選択します。 (既定の yaml)
    • --provider--override-provider-settings--list-providers、および--dependency-foldersフラグを削除します
  • 新しい --exclude-paths フラグ: 分析で無視する必要があるパスを指定します。 複数の値 ( --exclude-paths <path1>,<path2>,...) にはコンマ区切りのリストを使用します。 既定値は [] です。
  • 新しい --packages フラグ: 評価するアプリケーション クラス パッケージを指定します。 複数の値 ( --packages <package1>,<package2>,...) にはコンマ区切りのリストを使用します。 既定値は [] です。
  • 新しい --dry-run フラグ: 実際に分析を実行せずにフラグが有効かどうかを確認するだけです。 既定値は false です。
  • appcat azure-spring-appsから--list-targetsを削除します。

7.6.0.3

このリリースには、次の修正と機能強化が含まれています。

  • 新しい --limit-code-snips フラグ: ルールの評価中のコード スニペットの制限を制御します (0 = 無制限、-1 = スニペットを無効にします)。
  • 一括分析モードで依存関係ファイルのエラーが見つからない問題を修正しました。 --mode=source-onlyを使用する Java 以外のプロジェクトまたは Java プロジェクトの一括分析中にツールが中止されなくなりました。

7.6.0.2

このリリースには、次の修正が含まれています。

  • java-removals-00150 ルールが正しくトリガーされるようになりました。

7.6.0.1

このリリースには、次の修正と機能強化が含まれています。

  • --analyze-known-libraries フラグ: Windows で動作するようになりました。
  • ディレクトリのクリーンアップ: Windows で分析中に作成された追加のディレクトリが、自動的にクリーンアップされるようになりました。
  • --json-output フラグ: 動作するようになりました。
  • ルール解析エラー: エラー unable to parse all the rules for ruleset が解決されました。
  • [分析情報] タブの説明: 不足しているルールの説明が表示されるようになりました。
  • インターネット接続の依存関係: インターネット接続がなくても分析が失敗しなくなりました。
  • --context-lines フラグ: 0 に設定した際に、期待どおりに動作するようになりました。
  • ツールを実行するための Python 要件が削除されました。

7.6.0.0

このリリースは、Konveyor プロジェクトのさまざまなコンポーネントセットに基づいています。

一般的な更新プログラム

6.3.9.0

このリリースには、次の修正プログラムが含まれており、一連の新しい規則が含まれています。

一般的な更新プログラム

  • Windup アップストリーム リポジトリからの統合された変更 (6.3.9.Final リリース)。
  • ルールの説明とヘルプ テキストの動作しないリンクが解決されました。

準則

  • Azure メッセージ キュー: azure-message-queue-rabbitmqazure-message-queue-amqpの新しい規則が更新され、追加されました。
  • Azure Service Bus: Azure Service Bus の検出規則が導入されました。
  • MySQL と PostgreSQL: 依存関係の検出規則を調整しました。
  • Azure-AWS ルール: 既存の規則が強化および改善されました。
  • S3 Spring Starter: S3 Spring Starter の検出規則を追加しました。
  • RabbitMQ Spring JMS: RabbitMQ Spring JMS の検出規則を追加しました。
  • ログ記録規則: ログ関連の規則を更新および調整しました。
  • ローカルストレージ規則: ローカルストレージ規則を更新および調整しました。
  • Azure ファイル システム規則: Azure ファイル システム規則を更新および調整しました。

ライブラリ

  • セキュリティの脆弱性に対処するためにライブラリをアップグレードしました。

6.3.0.9

このリリースには、次の修正プログラムが含まれており、一連の新しい規則が含まれています。

  • localhost-java-00001 ルールに関する問題を解決しました。
  • AWS S3、AWS SQS、Alibaba Cloud OSS、Alibaba Cloud SMS、Alibaba Scheduler X、Alibaba Cloud Seata、Alibaba Rocket MQ などのテクノロジを識別するための新しいルールを導入しました。
  • XML ファイル拡張子をサポートするように azure-file-system-02000 を更新しました。
  • セキュリティの脆弱性に対処するために、さまざまなライブラリをアップグレードしました。

6.3.0.8

以前は、一連のターゲットが既定で有効になっており、特定の顧客が重要度の低い問題に関連する問題が多すぎる大規模なアプリケーションを評価することが困難でした。 レポートのノイズを減らすために、ユーザーは、--target の実行時にパラメーター appcat を使用して複数のターゲットを指定する必要があります。これにより、重要なターゲットのみを選択する選択肢が得られます。

6.3.0.7

Azure Migrate のアプリケーションとコード評価の GA (一般公開) リリース。

既知の問題

7.6.0.7

  • ルールの問題:
    • azure-system-config-01000ルールはトリガーされていません。
    • azure-password-01000 ルールは、同じファイルに複数の違反が存在する場合でも、1 つの違反のみを検出します。
  • Windows 上の Watcher エラー チャネルのエラー: Windows system assumed buffer larger than it is, events have likely been missed。 このエラー メッセージは、Windows で実行時間の長いジョブ中にコマンド ラインに表示されます。

7.6.0.6

  • ルールの問題:
    • azure-system-config-01000ルールはトリガーされていません。
    • azure-password-01000 ルールは、同じファイルに複数の違反が存在する場合でも、1 つの違反のみを検出します。
  • Windows 上の Watcher エラー チャネルのエラー: Windows system assumed buffer larger than it is, events have likely been missed。 このエラー メッセージは、Windows で実行時間の長いジョブ中にコマンド ラインに表示されます。

7.6.0.5

  • ルールの問題:
    • azure-system-config-01000ルールはトリガーされていません。
    • azure-password-01000 ルールは、同じファイルに複数の違反が存在する場合でも、1 つの違反のみを検出します。
  • Windows 上の Watcher エラー チャネルのエラー: Windows system assumed buffer larger than it is, events have likely been missed。 このエラー メッセージは、Windows で実行時間の長いジョブ中にコマンド ラインに表示されます。

7.6.0.4

  • ルールの問題:
    • azure-system-config-01000ルールはトリガーされていません。
    • azure-password-01000 ルールは、同じファイルに複数の違反が存在する場合でも、1 つの違反のみを検出します。
  • Windows 上の Watcher エラー チャネルのエラー: Windows system assumed buffer larger than it is, events have likely been missed。 このエラー メッセージは、Windows で実行時間の長いジョブ中にコマンド ラインに表示されます。

7.6.0.3

  • フラグ --overrideProviderSettings はサポートされていません。
  • ルールの問題:
    • azure-system-config-01000 http-session-01000ルールがトリガーされていません。
    • FileSystem - Java IO ルールがトリガーされていません。
  • Windows で WAR ファイルを分析すると、次のエラーが生成されます: Failed to Move Decompiled File. Windows で WAR ファイルを分析するとエラーが発生します。これは、Windows OS で作成されたいくつかの冗長な問題の原因となります。
  • Windows 上の Watcher エラー チャネルのエラー: Windows system assumed buffer larger than it is, events have likely been missed。 このエラー メッセージは、Windows で実行時間の長いジョブ中にコマンド ラインに表示されます。
  • + は進行中の分析を停止できません。 回避するには、プロセスを明示的に強制終了して、プロセスを手動で終了します。
  • バイナリ分析レポートでは、コード スニペットのタイトルに正しくないファイル パスまたは存在しないファイル パスが表示されます。

7.6.0.2

  • フラグ --overrideProviderSettings はサポートされていません。
  • ルールの問題:
    • azure-system-config-01000 http-session-01000ルールがトリガーされていません。
    • FileSystem - Java IO ルールがトリガーされていません。
  • Windows で WAR ファイルを分析すると、次のエラーが生成されます: Failed to Move Decompiled File. Windows で WAR ファイルを分析するとエラーが発生します。これは、Windows OS で作成されたいくつかの冗長な問題の原因となります。
  • Windows 上の Watcher エラー チャネルのエラー: Windows system assumed buffer larger than it is, events have likely been missed。 このエラー メッセージは、Windows で実行時間の長いジョブ中にコマンド ラインに表示されます。
  • + は進行中の分析を停止できません。 回避するには、プロセスを明示的に強制終了して、プロセスを手動で終了します。
  • バイナリ分析レポートでは、コード スニペットのタイトルに正しくないファイル パスまたは存在しないファイル パスが表示されます。

7.6.0.1

  • フラグ --overrideProviderSettings はサポートされていません。
  • ルールの問題:
    • azure-system-config-01000http-session-01000java-removals-00150 ルールがトリガーされていません。
    • FileSystem - Java IO ルールがトリガーされていません。
  • Windows で WAR ファイルを分析すると、次のエラーが生成されます: Failed to Move Decompiled File. Windows で WAR ファイルを分析するとエラーが発生します。これは、Windows OS で作成されたいくつかの冗長な問題の原因となります。
  • Windows 上の Watcher エラー チャネルのエラー: Windows system assumed buffer larger than it is, events have likely been missed。 このエラー メッセージは、Windows で実行時間の長いジョブ中にコマンド ラインに表示されます。
  • + は進行中の分析を停止できません。 回避するには、プロセスを明示的に強制終了して、プロセスを手動で終了します。
  • バイナリ分析レポートでは、コード スニペットのタイトルに正しくないファイル パスまたは存在しないファイル パスが表示されます。

7.6.0.0

  • --analyze-known-libraries フラグが Windows で動作していません。
  • Windows では、分析プロセス中に次の追加フォルダーが生成されますが、完了後に自動的に削除されることはありません。 分析が完了した後で、これらの追加のフォルダーを削除できます。
    • .metadata
    • org.eclipse.osgi
    • org.eclipse.equinox.app
    • org.eclipse.core.runtime
    • org.eclipse.equinox.launcher
  • フラグ --overrideProviderSettings はサポートされていません。
  • フラグ --json-output はサポートされていません。 今後のリリースでは、 output.yaml ファイルと dependency.yaml ファイルの JSON 出力が生成されます。
  • ルールの問題:
    • azure-system-config-01000http-session-01000java-removals-00150 ルールがトリガーされていません。
    • FileSystem - Java IO ルールがトリガーされていません。
    • 分析の実行時にエラー unable to parse all the rules for ruleset が発生しました。 このエラーは、ツールがルール セット内のすべてのルールを解析できない場合に、分析中に発生します。
  • Windows で WAR ファイルを分析すると、次のエラーが生成されます: Failed to Move Decompiled File. Windows で WAR ファイルを分析するとエラーが発生します。これは、Windows OS で作成されたいくつかの冗長な問題の原因となります。
  • [分析情報] タブの一部のルールの説明がありません。一部のタグ ルールには説明がないため、レポートの [分析情報] タブに空白のタイトルが表示されます。
  • Windows 上の Watcher エラー チャネルのエラー: Windows system assumed buffer larger than it is, events have likely been missed。 このエラー メッセージは、Windows で実行時間の長いジョブ中にコマンド ラインに表示されます。
  • このリリースでは、依存関係分析のためにアクティブなインターネット接続が必要です。
  • + は進行中の分析を停止できません。 回避するには、プロセスを明示的に強制終了して、プロセスを手動で終了します。
  • フラグ --context-lines が数値 0 に設定されている場合、期待どおりに機能しません。 このフラグを使用すると、ユーザーはレポートに表示するソース コードの量を制限できます。 値 0 に設定すると、期待どおりに機能しない可能性があります。

ライセンス

Java 用の Azure Migrate アプリケーションとコード評価は、無料のオープン ソース ベースのツールです。

データ コレクション

AppCAT では、既定でテレメトリ データが収集されます。 Microsoft は、収集されたデータを集計して、一般的な問題を特定し、AppCAT CLI のエクスペリエンスを向上させるために使用パターンを特定します。 Microsoft AppCAT CLI では、プライベートデータや個人データは収集されません。 たとえば、使用状況データは、成功率が低いコマンドなどの問題を特定するのに役立ちます。 この情報は、作業に優先順位を付けるのに役立ちます。

このデータで得られる分析情報は貴重なものですが、Microsoft では使用状況データを送信したくないユーザーが存在することも理解しています。 appcat analyze --disable-telemetry コマンドを使用して、データ収集を無効にすることができます。 詳細については、プライバシーに関する声明のを参照してください。