Mavenprovided
スコープと Java クラスローダーの使用方法を誤解しています。
クラスMyClass
があり、このクラスには、serialize()
シリアライズ時に使用する JSON ライブラリを記述する列挙型を受け取るメソッドがあるとします。
これらの JSON ライブラリの 1 つは内部のもので、MyClass 用に配布する JAR に含まれています。単純。
もう 1 つの JSON ライブラリは、ユーザーに提供を強制したいサード パーティのライブラリです。したがって、私はそれを<scope>provided</scope>
ポンポンの下に置きました。
テスト中はすべてうまくいきますが、クラスパスにサードパーティの JSON ライブラリを使用せずに外部から独自のライブラリを使用しようとすると、まったく呼び出しを行っていないにもかかわらずClassNotFoundException
、sが発生します。serialize()
私は、クラスは「必要に応じて」ロードされるだけであると想定していましたserialize()
。. 私が間違っている?私がここで得ていることを達成する方法はありませんか?