私は OSGI に基づく AEM 開発者として何人か働いてきましたが、これが私の初歩的な (そして少し時代遅れの) アイデアの由来です。新しい仕事で、AEM とはまったく関係のないプロジェクトで、私がしなければならないことは次のとおりです。
- JDK8 に準拠したサードパーティ ライブラリに基づいてサービス ライブラリを構築する
- それらを、JDK9 以降で実行されている Tomcat に Spring Web アプリとしてデプロイします。
サードパーティ ライブラリはライセンス ソフトウェアであり、特定の法的な行き詰まりのためアップグレードできません。Java API の問題が原因で、JDK9 での単純なデプロイメントは失敗します。
理論的には、バンドルされた依存関係として JDK8 ランタイム全体を含め、それを JDK9+ 準拠の OSGI ランタイム フレームワークに OSGI バンドルとしてデプロイします。
これは潜在的に機能しますか?理論的には、各 OSGI バンドルが独自のクラスローダーを使用するため、これが成り立つため、Java API の問題が原因でサードパーティ ライブラリが破損することはありません。また、fat (uber) jar を作成するために maven を使用する予定です。
私を悩ませているもう 1 つの質問: JDK を含む uber-jar を作成することは問題ですか? 以前に uber-jar を作成したことがありますが、JDK もどのように含めるかわかりません。その一部は正しくないようです。なにか提案を?
みんな、ありがとう!