デプロイメント中に検出された非推奨のcom.google.common (Guava)ライブラリ使用状況の解決
非推奨のcom.google.common (Google Guava) APIが検出されると、AEMのデプロイメントが失敗するか、トリガーアクションセンターにアラートが通知されます。 Cloud Managerは、推移的な依存関係やテストスコープの依存関係を含む、すべてのOSGiの読み込みを検査するため、プロジェクトがGuavaに明示的に依存していない場合でも警告が表示されます。 修正は、古いACS AEM Commons、コアコンポーネントのサンプルパッケージ、テストライブラリ、またはGuava ユーティリティを直接参照するカスタムコードなど、ソースによって異なります。 Guava依存関係を削除または置き換えてから再デプロイすると、アラートがクリアされ、アクションセンターインシデントがクローズされます。
説明 description
問題:Cloud Managerで、デプロイメント時に非推奨のcom.google.common (Guava)使用状況が検出される
説明
Cloud ManagerとAEM APIの非推奨スキャナーは、com.google.common.*の使用を非推奨にしました。 Cloud Managerは、推移的な依存関係とテストスコープの依存関係を含むOSGiのインポートを検査するため、プロジェクトに明示的なGuava依存関係がない場合でも警告が表示されます。 この問題は、AEMaaCS、Managed Services、オンプレミス環境に影響します。
環境:
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- AEM Managed Services(AMS)
- AEM 6.5 LTS オンプレミス
- Cloud Manager(ビルドおよびコード品質パイプライン)
問題/症状:
- アクション センターの警告:
Deprecated Library Detected — com.google.common com.google.common.collectなどのパッケージを参照するCloud Manager analyzer ログの警告- ライブラリの使用が非推奨になったため、パイプラインコード品質ステップが一時停止または失敗する
- OSGi インスペクターは、移行テストの依存関係のみの場合でも、
com.google.common.*のインポートを確認します
根本原因:
com.google.common APIは完全に非推奨となり、AEM as a Cloud Serviceでの削除が予定されています。 Cloud Managerは、依存関係が明示的、推移的、またはテストスコープであるかどうかに関係なく、com.google.common.*をインポートするバンドルにフラグを付けます。 非推奨の使用は、古いACS AEM Commons バージョン、コアコンポーネントのサンプルパッケージ、io.wcmのテストライブラリ、slf4j-test、sling-mock、Asset Share Commons、またはLists.partition()などのGuava ユーティリティを使用したカスタムコードから発生する可能性があります。 AEM 6.5 LTSおよびオンプレミスでは、Guavaは出荷されなくなり、sling_bootstrap.txtの制限により、スタンドアロンバンドルとしてインストールできません。
確認方法
-
コアバンドルモジュールで以下を実行して、テストスコープを含むGuavaで取り込まれるすべての依存関係を特定します。
code language-none mvn dependency:tree -Dincludes=com.google.guava:*,com.google.common:* -
出力を確認して、ソースが直接か推移的かを確認し、以下のいずれかの修復パスに一致させます。
-
どのバンドルが
com.google.common.*を読み込むかを確認するために、Cloud Manager アナライザーログとの相互参照を行います。
解決策 resolution
-
Guavaを使用したカスタムコード(AEMaaCS、AMS、オンプレミス):
com.google.commonのユーティリティをJDKまたはApache Commons コレクション 4に置き換えます。 例えば、Lists.partition()をJava ストリームベースのバッチ処理アプローチに置き換えます。 プロジェクトを検索して確認します。code language-none grep -R "com.google.common" ./src
Guavaを削除すると、短期間で機能が破損する場合は、独自のGuava バージョンを一時的に埋め込み(手順5を参照)、リファクタリングを計画します。
2. ACS AEM Commons PULLING Guava (AEMaaCS): ACS AEM Commonsを少なくともバージョン 6.11.0に更新し、classifier=cloudが公式ガイダンスに従って設定されていることを確認します。 アナライザー出力を再構築して確認し、Guavaがレポートされなくなったことを確認します。
3. コアコンポーネントのサンプルパッケージ (AEMaaCS): all モジュールからすべてのcore.wcm.components.examples.* パッケージを削除します。 mvn clean installを再実行し、ビルドされたコンテンツ パッケージを調べて、サンプル パッケージが終了したことを確認します。 親POM継承によって再導入されていないことを確認します。
4. テスト スコープの推移的依存関係(AEMaaCS): Guavaを推移的に参照するslf4j-testやio.wcm.testing.aem-mock.*などのテスト ライブラリを削除または置換します。 mvn dependency:treeを再実行して、com.google.commonが表示されなくなったことを確認します。 リークが引き続き発生する場合は、バンドルプラグインを設定してcom.google.common.*をImport-Packageから除外します。
5. AEM 6.5 オンプレミスまたはAMS — カスタムバンドル内にGuavaを埋め込む: Guavaが必要な場合は、スタンドアロンバンドルとしてインストールするのではなく、カスタムバンドル内にGuavaを埋め込むかシェードします(スタンドアロンインストールはsling_bootstrap.txtによってブロックされます)。 バンドルがGuava パッケージをエクスポートしていないことを確認します。 カスタムバンドルをデプロイして確認すると、Web コンソールにActive状態が表示されます。
6. 再構築して再デプロイ:完全なCloud Manager パイプライン(AEMaaCS)を実行するか、AMS/オンプレミスのデプロイメントプロセスを通じてOSGi バンドルをデプロイします。 非推奨のcom.google.common.*警告を報告せずに、コード品質ステップが完了したことを確認します。
7. 再検証: AEMaaCSの場合、完全なCloud Manager パイプラインを実行すると、Actions Center インシデントを作成するのと同じスキャナーが再トリガーされます。 非推奨の使用状況が検出されない場合、インシデントは自動的に解決されます。 アクションセンターを更新して、インシデントが閉じられていることを確認します。
検証
- もう一度
mvn dependency:treeを実行し、com.google.common.*をインポートするモジュールがないことを確認します。 - デプロイメント後にCloud Manager analyzerのログを確認して、非推奨ライブラリの警告が残っていないことを確認します。
- アクション センターで非推奨のライブラリインシデントが生成されなくなりました。
- OSGi Web コンソールまたはパイプラインログを使用して、
com.google.common.*をカスタムバンドルでインポートしないことを確認します。
関連トピックス
- API削除ガイダンス — com.google.common
- AEM 6.5 LTS Guava削除のお知らせ
- Adobe Experience Manager as a Cloud Service 2026.1.0 リリースの リリースノート