【发布时间】:2018-12-09 15:14:12
【问题描述】:
我想知道为什么OSGi不尊重maven依赖。
我想在 OSGi(AEM) 中创建一个应用程序。我想在 JPA(eclipselink)的帮助下与数据库进行通信(CRUD)。
我使用 aem-archetype 创建了 maven 项目。
将所有必需的依赖项(JPA)添加到我的 maven 项目的 pom 文件中。
Eclipse 中没有错误,我通过mvn clean install 构建项目并通过mvn sling:install 将其安装到AEM(CQ5)中。到目前为止一切都很好。没有错误。
但是当我在 felix 控制台中查看我的包时,我看到它不是 Active 而是处于 Installed 状态。报告的错误是它不能解决 javax.persistence 包。
我很困惑,我搜索并在这里阅读了它 -
您必须确保将相同的版本放在另一个 首先捆绑和部署。 https://forums.adobe.com/thread/2325007
我将 JPA jar 转换为 OSGi 包并安装在我的 OSGi 容器中,错误消失了。太好了!
但是为什么 OSGi 不注意我在我的 maven 项目的 pom.xml 中编写的依赖项。为什么它需要严格来自 OSGi 包的 JPA?
也许这是由于任何架构上的好处,但有人可以在这里解释一下 OSGi 的这种行为吗? OSGi 的这个特性为什么/如何有用?
【问题讨论】:
-
如果有人能解释为什么我的问题被否决了。下次提问时我会小心的。
-
“我想知道为什么 OSGi 不尊重 maven 依赖项”不是一个好的开始。为什么不问为什么 Maven 不尊重 OSGi 依赖项? ;-)
-
如果有帮助,OSGi 也不尊重 gradle、ant 或 sbt 依赖项。
标签: maven jpa osgi osgi-bundle apache-aries