アプリケーションのJavaバージョンをアップグレードする

watsonx Code Assistant 標準プラン

Javaコードをアップグレードするには、まずアプリケーションをビルドして分析し、特定された問題を修正します。 問題の内容に応じて、その修正は自動化、支援、または自己管理のいずれかの方法で行うことができます。

始める前に、エンタープライズJava環境をセットアップし てください。

**Eclipse IDE ** のみ :マルチモジュール Javaで最良の結果を得るには、アグリゲーター・モジュールと各サブモジュールを Eclipse内の個別のプロジェクトとしてインポートしてください。最上位ディレクトリを単一プロジェクトとしてインポートすると Watsonx Code Assistantプロジェクトを正しく内省できない可能性があります。

コード解析に要する時間

申請書の審査には、さまざまな時間がかかります。 以下の時間は典型的なものである。

分析に要する時間
時刻 アプリケーションの詳細
数秒から数分 100クラス以下
2分から10分 2万行から5万行のコード
10分以上 30万行のコード

あなたのアプリケーションをwatsonx Code Assistantが解析するとき、デフォルトではいくつかのサードパーティパッケージをコード解析から除外します。 詳細については、アプリケーション解析から除外されるサードパーティ製 パッケージを参照してください。

Javaバージョンをアップグレードするためのアプリケーションの分析

分析によって、取り組むべき問題のリストが示される。 問題を修正すると、アプリケーションのJavaバージョンがアップグレードされます。

コードの変更を元に戻した場合、 Java アップグレードを再度実行するには 、[戻る] をクリックして分析し、完全な分析を実行する必要があります。

  1. IDE 内で、アップグレードしたいアプリケーションのディレクトリ内の階層にある項目を右クリックします。

  2. アップグレードプロセスを開始するには、どちらかのパスを使用します。 どちらも同じだ:

    • をクリックします。 watsonx Code Assistant をクリックし、 Java バージョンのアップグレードをクリックします。
    • Modernize Java Applications ] をクリックし、[ Upgrade Java Version ] をクリックします。
  3. Upgrade*<アプリケーション名>*ページで、アプリケーションを分析するルールを定義する分析パラメーターを選択します。

    1. オプションでJavaソースを変更すると、自動的に推奨値が表示されます。

      Javaソースバージョンは、アップグレード元のJavaバージョンです。 ビルド構成で検出されたJavaバージョンに基づいて、watsonx Code Assistantはソースとして使用するJavaバージョンを推奨する。 サポートされているJavaバージョンのリストから、アプリケーションに適した別のJavaバージョンを選択することができます。 ビルド設定はMavenの「pom.xml ファイルにある。

      推奨されるJavaバージョンは、ビルド構成で検出されたJavaバージョンか、検出されたJavaバージョンから利用可能な最善のJavaバージョンのいずれかである。 例えば、サポートされていないJava9がビルド構成で指定されている場合、Java8が推奨されるJavaバージョンとなる。 Java8は、分析に最も近いサポートされたJavaバージョンであり、検出されたJavaバージョンよりも早いため、推奨される。

      Javaの最低サポートバージョンはJava6です。

    2. Java。

      Java のターゲットバージョンは、 Java バージョンであり、 Java アプリケーションをアップグレードするバージョンです。 選択可能な対象バージョンは、長期(LTS) Java リリースです。

    3. 分析」または「ビルドして分析」 のいずれかをクリックする。

      アプリケーション解析はアプリケーションバイナリに対して行われる。 分析開始前にアプリケーションを構築する必要がある。 アプリケーションの構築は、自動でも手動でも可能だ。

      • Build and analyze をクリックすると、アプリケーションのビルドと解析が自動的に行われます。
      • 手動でアプリケーションを構築した後、[分析] をクリックします。

      アプリケーションがビルドされ、分析されると、修正またはレビューすべき問題が表示されます。 修正すべき問題によって、修正能力は自動化されたり、アシストされたり、あるいは自己管理されたりする。 これらのレビューすべき問題は、コードを移行するためのコード変更を必要としない。 ただし、検証やテストが必要な場合もある。

      「ビルドして分析」 をクリックすると、アプリケーションは現在の Java ソースバージョンでビルドされ、 Java アップグレードに関する問題を分析できるようになります。 Java ソースバージョンの Java 開発者キットでIDEを構成するようにしてください。そうすれば、IDEでアプリケーションを正常にビルドできます。

      ビルドや解析時に、 liberty-assembly パッケージングを使用するサブモジュールを含むマルチモジュールプロジェクトで問題が発生した場合は、プロジェクトのルートレベルで mvn install を実行し、もう一度試してみてください。

分析レポートに.javaファイルではなく.classファイルが含まれるのはなぜですか?

バイナリ(JAR/WAR/EAR)の解析を実行すると、問題は常にクラスファイルから発見されます。 バイナリ・スキャナーを watsonx Code Assistant の外部で実行すると、ソース・コードにアクセスできないため、.class ファイルが解析レポートに含まれます。 移行プランをインポートするとき、または watsonx Code Assistant 内で分析を実行するとき、レポートはクラスファイルへの参照を表示しますが、 watsonx Code Assistant は.class ファイルを.java ファイルにリンクし、.java ファイルは watsonx Code Assistant UI に表示されます。

アプリケーションの問題点の修正と追加情報の確認

アップグレード<アプリケーション名>ページには以下の情報が表示されます:

  • Javaバージョンのソースとターゲット
  • 技術レポート、インベントリーレポート、分析レポートへのリンク
  • 自動修正、アシスト修正、自己修正など、修正すべき問題や追加情報のタブ

対象となる Java 開発者キットは、自動修正を実行するときと、 Java バージョンのターゲット変更後にアプリケーションをビルドするときに必要になります。 対象の Java 開発者キットがIDE用に設定されていることを確認してください。

  • Eclipse IDE 拡張機能は、IDE で構成されているすべての Java 開発者キットのセットから、 Java バージョン・ターゲットに一致する正しい Java 開発者キットを自動的に見つけようとします。
  • Visual Studio Code IDEでは、 Java 開発者キットの設定を手動で変更する必要があります。

自動修正の完了

自動修正タブに1つ以上の修正がある場合は、そのタブを選択します。

なぜなら、watsonx Code Assistantはあなたのために修正を完了するので、あなたはコードを変更する必要がないからです。 大規模言語モデル(LLM)は自動修正には使用されない。

  1. 説明書を広げて読んでください。
  2. オプションでissueを開き、issueの説明を確認することができます。
  3. 自動修正プログラムの実行]をクリックします。
    • 自動化された修正は修正された。
    • 外部issueは、関連する依存関係を更新するまでリストに残ります。
  4. 自動修正の実行が完了したら、[Rebuild and refresh]をクリックしてissueリストを更新します。

自動修正が実行されず、コンソール出力にコンパイルエラーが表示される場合は、 maven-compiler プラグインのバージョンを 3.13.0 またはそれ以降に更新してください。

自動化を実行している際に、 liberty-assembly パッケージングを使用するサブモジュールを含むマルチモジュールプロジェクトで問題が発生した場合は、プロジェクトのルートレベルで mvn install を実行し、もう一度試してください。

アシスト修正の完了

Assisted fixes タブに1つ以上の修正がある場合は、そのタブを選択してください。

あなたがコードを修正しても、watsonx Code Assistantは、あなたのコードを変更する方法についてチャットで提案することで、あなたを支援します。

利用可能な支援のレベルは問題によって異なります。 アシスト機能により問題の修正が容易になり、時にはコードの提案がすべて、またはほとんどの作業を完了させることもあります。 他の場合、コードの提案は、コンパイルの失敗を防ぐために古いAPIを削除するという単純なもので、それ以上のアクションは必要ないかもしれない。 各アシスト修正の価値と限界を理解するためには、各アシスト修正の手順に従うことが重要です。 完全なコードの提案が提供されない場合、アシストされた修正をチャットでの会話のきっかけとして考えることができます。 チャットに参加し続け、問題とその解決策について理解を深める。

アシストされた修正に関連する問題のリストについては、アシストされた修正のリファレンス を参照してください。

アシストフィックスを使うには

  1. Instructionsを展開し、指示に従ってください。

  2. 各問題について、それを拡大する。

  3. 「続きを読む」 をクリックして問題を拡大します。

  4. issueにリストされているファイルをクリックします。 ファイルはエディターで開きます。

  5. issueを展開すると、issueの詳細が表示されます。

  6. 詳細でコード・スニペットを選択するように指示されたら、それを選択する。

  7. 問題を解決するためのサポートについては、「Help me」をクリックしてください。

    Visual Studio Codeを使用している場合、以下の制限が適用されます:

    • アクティブなエディタ1つだけで、 Java コードを選択するようにしてください。
    • Java コードを選択したアクティブなエディタが、 Modernize to Liberty または Java Upgrade ビューとは異なるエディタ・グループにあることを確認してください。
  8. チャットに表示されるコードの修正に関する提案に従ってコードを修正し、問題を解決します。

    チャットでは、コードの提案ではなく、情報による回答が提供されることがあります。

  9. 問題を修正したら、すべての修正が修正されるまで 「再構築」をクリックして更新します

自己責任による修正を完了させる

Self-directed fixes タブに1つ以上の修正がある場合は、そのタブを選択します。

あなたはコードを変更し、コードを修正する方法を決定しますが、チャットから助けを得ることができます。

  1. Instructionsを展開し、指示に従ってください。
  2. 各号を拡大する。
  3. 「続きを読む」 をクリックして問題を拡大します。
  4. issueにリストされているファイルをクリックします。 ファイルはエディターで開きます。
  5. 問題が発生するたびに表示される「チャットを開始」をクリックします。 チャットウィンドウが開き、問題の解決に役立つサポートを受けることができます。 例えば、コードアシスタントに現在のコードが何をするものかを尋ねることができる。 あるいは、問題のあるコードに代替の実装があるかどうかを尋ねることもできる。
  6. 問題を修正したら、すべての自己指示による修正が修正されるまで、 「再構築」をクリックして更新します

追加情報への対応

追加情報タブに1以上の数字がある場合は、そのタブを選択します。

タブにリストされた問題は、他のタブの問題が決定されるのと同じ方法で決定されます。 追加の情報に関する問題は、コードの変更を必要とするものではありませんが、コードの移行時にアプリケーションが確実に動作するように、問題を確認してください。

追加の情報は、APIの些細な動作の変化などの問題や、それらへの対処法を示しているかもしれません。

  • 指示を拡大し、それに従うこと。

  • 各号をクリックしてください。

    • 「続きを読む」 をクリックして問題を拡大します。
    • issueに記載されているファイルのリンクをクリックし、コードを確認してください。

現在のアプリケーション以外の外部課題に取り組む

修正に取り組んでいる間に、現在のアプリケーションの外部で発生した問題として分類されるものもあるかもしれない。 これらの問題のソースコードは、現在のソースアプリケーションの一部ではない特定のアーカイブにあります。

アーカイブがあなたの組織が所有する図書館である場合:

  1. 関連するソースコードを別のアプリケーションとして開き、 watsonx Code Assistant。

  2. その後、現在のアプリケーションをアップデートして、新しい修復バージョンを使用することができます。

アーカイブが、あなたの組織が所有していない図書館である場合:

  1. この問題を含まないバージョンにアップデートする必要があります。 そのようなバージョンが存在しない場合は、別の技術を使う必要があるかもしれない。

  2. watsonx Code Assistant、代わりの選手を決めるための話し合いを始めることができる。 手始めに、 What is the library X used for? または Is it easy to replace? に尋ねてみよう。 図書館の具体的な利用方法について、より詳しい情報を得るために会話を続けましょう。