STS で以下のエラーが発生します。
タイプ org.springframework.core.env.EnvironmentCapable を解決できません。必要な .class ファイルから間接的に参照されている
STS で以下のエラーが発生します。
タイプ org.springframework.core.env.EnvironmentCapable を解決できません。必要な .class ファイルから間接的に参照されている
これは推移的な依存関係の問題のようです。これが意味することは、コードが何かを行うために jar またはライブラリに依存していることです。明らかに、Spring フレームワーク コードに依存しています。さて、Spring コードはすべて、ライブラリーと jar にも依存しています。
ほとんどの場合、IDE がプロジェクトをビルドしようとするときにクラスが検出される ように、正確にバージョン管理されたorg.springframework.core
jar をクラスパスに追加する必要があります。EnvironmentCapable
これは、jar の衝突の問題でもある可能性がありますが、可能性は低いと思われます。アプリケーションで jar の衝突 (「dll 地獄」とも呼ばれます) が発生すると、コンパイラは同じ完全修飾名を持つ複数の jar とクラスを検出します。たとえば、Tomcat サーバー ライブラリ全体とともに、Spring をクラスパスに追加したとします。これら 2 つの jar には、まったく同じ名前のクラス、おそらく同じバージョン、または異なるバージョンが含まれている可能性があります。いずれにせよ、コンパイラがそのEnvironmentCapable
クラスを探すとき、2 つ (この不自然な例では) を見つけます。1 つは Spring jar にあり、もう 1 つは Tomcat jar にあります。どちらを選択すればよいかわからないため、 をスローしますClassDefNotFoundException
。これは、発生したエラーとして現れる/現れる可能性があります。