Зависимость Maven для библиотеки LDAP не может быть разрешена в OSGi - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь импортировать

import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.apache.directory.ldap.client.api.DefaultLdapConnectionFactory;
import org.apache.directory.ldap.client.api.LdapConnection;
import org.apache.directory.ldap.client.api.LdapConnectionConfig;
import org.apache.directory.ldap.client.api.LdapConnectionPool;
import org.apache.directory.ldap.client.api.ValidatingPoolableLdapConnectionFactory;
import org.apache.directory.ldap.client.template.LdapConnectionTemplate;

и использую

<dependency>
    <groupId>org.apache.directory.api</groupId>
    <artifactId>api-ldap-client-api</artifactId>
    <version>2.0.0.AM4</version>
</dependency>

в родительском pom и

<dependency>
    <groupId>org.apache.directory.api</groupId>
    <artifactId>api-ldap-client-api</artifactId>
</dependency>

в pom пакета.

Проблема в

- The artifact is not present in osgi after build and
- Project bundle is in resoved state due to error 

org.apache.commons.pool2,version=[2.6,3) -- Cannot be resolved
org.apache.commons.pool2.impl,version=[2.6,3) -- Cannot be resolved
org.apache.directory.ldap.client.api,version=[2.0,3) -- Cannot be resolved
org.apache.directory.ldap.client.template,version=[2.0,3) -- Cannot be resolved

ОБНОВЛЕННЫЙ ВОПРОС -

"Как разрешить эти зависимости? Какую зависимость / библиотеку ldap можно использовать в OSGi?? "

Цель - я пытаюсь подключить LDAP

LdapConnection connection = new LdapNetworkConnection( "localhost", 10389 );

Справочник - Документация по подключению LDAP

1 Ответ

4 голосов
/ 10 июля 2019

Вы должны различать время сборки и время выполнения зависимости.В Maven вы определяете свои зависимости время сборки .По умолчанию они не имеют ничего общего с комплектами, установленными в AEM ( время выполнения зависимости).

Чтобы было понятно:

Зависимости, определенные в Maven, , а не , автоматически устанавливаемые в AEM.

Существует несколько вариантов, как вы можете развернуть необходимое время выполнения зависимости от AEM:

  1. Установите их вручную (/system/console/bundles)
  2. Поместите их в пакет содержимого и разверните этот пакет содержимого вручную.
  3. Расширьте свойСборка Maven для создания пакета содержимого, который включает в себя необходимые пакеты во время выполнения (например, org.apache.directory.api:api-ldap-client-api:2.0.0.AM4)
  4. Установите пакеты, используя каталог install AEM на жестком диске: crx-quickstart/install.

Все они имеют свои преимущества и недостатки.Я обычно выбираю вариант № 3.Я написал длинный ответ, который объясняет это здесь: https://stackoverflow.com/a/56698917/190823

...