Я хочу знать, почему OSGi не уважает зависимость от mavenis.
Я хочу создать одно приложение в OSGi (AEM). Я хочу общаться (CRUD) с базой данных с помощью JPA (eclipselink).
Я создал проект maven с aem-archetype.
Добавлены все необходимые зависимости (JPA) в pom-файл моего проекта maven.
В Eclipse нет ошибок, я создал проект через mvn clean install
и установил его в AEM (CQ5) через mvn sling:install
. Все хорошо до сих пор. Нет ошибок.
Но когда я иду и вижу свой комплект в консоли felix, я вижу, что это не Актив , а в Установлено состояние. Сообщается об ошибке, что он не может разрешить javax.persistence
пакет.
Я был озадачен, я искал и читал об этом здесь -
Вы должны убедиться, что вы помещаете ту же версию в другую
связать и развернуть в первую очередь. https://forums.adobe.com/thread/2325007
Я преобразовал JPA jar в комплект OSGi и установил его в свой контейнер OSGi, и ошибка исчезла. Отлично!
Но почему OSGi не следит за зависимостями, которые я написал в pom.xml моего проекта maven. Зачем нужен JPA строго из комплекта OSGi?
Может быть, это связано с какой-либо архитектурной выгодой, но не мог бы кто-нибудь объяснить мне здесь такое поведение OSGi? И почему / как эта функция OSGi полезна?