我曾担任过一些基于 OSGI 的 AEM 开发人员,这就是我的基本(而且有点过时)想法的来源。在一份新工作和完全与 AEM 无关的项目中,这是我需要做的。
- 基于 JDK8 兼容的 3rd 方库构建服务库
- 将它们部署为 tomcat 上的 spring web-app,在 JDK9 或更高版本上运行。
3rd 方库是许可软件,由于某些法律僵局而无法升级。由于 Java API 问题,在 JDK9 上直接部署失败。
理论是将整个 JDK8 运行时包含为捆绑依赖项,并将其作为 OSGI 捆绑包部署在兼容 JDK9+ 的 OSGI 运行时框架上。
这可能有效吗?理论上这是成立的,因为每个 OSGI 包都使用自己的类加载器,因此第 3 方库不应该因为 Java API 问题而中断。此外,计划是使用 Maven 创建一个胖(超级)罐子。
另一个困扰我的问题:创建一个包含 JDK 的 uber-jar 甚至是一件事吗?我以前创建过 uber-jar,但不确定如何包含 JDK。其中的某些部分似乎不正确。有什么建议吗?
感谢大家!