Java でアプリケーション プラグインを作成していますが、プラグインはいくつかのサードパーティ JAR に依存しています。これらの依存関係をプラグインにバンドルして、1 つの JAR ファイルだけをデプロイできるようにしています。
ホスト アプリケーションは、他のベンダーのプラグインを実行している場合もあります。残念ながら、ホスト アプリケーションはすべてのプラグインをクラスパスに配置しており、この動作を変更することはできません。別のベンダーのプラグインが私の前に読み込まれ、依存関係の互換性のないバージョンを使用している場合、私のプラグインがクラッシュする可能性があります。
自分のプラグインと他のプラグインとの互換性を事前にテストすることができません。また、プラグイン間に非互換性があると言うのも受け入れられません。プラグインがクラッシュすると、会社に悪影響を及ぼします。顧客は、私のプラグインがクラッシュする理由を気にしません。彼らは、私の側のプログラミングが不十分であると考えます。
他のベンダーのプラグインが自分のプラグインに干渉するのを防ぐ方法を探しています。出来ますか?
カスタム クラスローダーについて聞いたことがありますが、その解決策がうまくいくかどうかはわかりません。