Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在OSGi中解析LDAP库的Maven依赖项_Maven_Ldap_Osgi_Aem_Maven Dependency Plugin - Fatal编程技术网

无法在OSGi中解析LDAP库的Maven依赖项

无法在OSGi中解析LDAP库的Maven依赖项,maven,ldap,osgi,aem,maven-dependency-plugin,Maven,Ldap,Osgi,Aem,Maven Dependency Plugin,我想进口 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.LdapConne

我想进口

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>
更新的问题-

“如何解决这些依赖关系?哪个ldap依赖关系/库?” 可以在OSGi中使用吗?”

目标-我正在尝试连接LDAP

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

参考-

您必须区分构建时依赖项和运行时依赖项。在Maven中定义构建时依赖项。默认情况下,它们与AEM(运行时依赖项)中安装的捆绑包无关

为了说明这一点:

Maven中定义的依赖项不会自动安装到AEM中

有几个选项可以选择如何将所需的运行时依赖项部署到AEM:

  • 手动安装(
    /system/console/bundles
  • 将它们放在内容包中,并手动部署该内容包
  • 扩展Maven构建以创建一个包含运行时所需捆绑包的内容包(例如
    org.apache.directory.api:api ldap客户端api:2.0.0.AM4
  • 使用硬盘上AEM的
    Install
    目录安装捆绑包:
    crx quickstart/Install

  • 它们各有优缺点。我通常选择选项3。我在这里写了一个很长的答案来解释这一点:

    您必须区分构建时依赖项和运行时依赖项。在Maven中定义构建时依赖项。默认情况下,它们与AEM(运行时依赖项)中安装的捆绑包无关

    为了说明这一点:

    Maven中定义的依赖项不会自动安装到AEM中

    有几个选项可以选择如何将所需的运行时依赖项部署到AEM:

  • 手动安装(
    /system/console/bundles
  • 将它们放在内容包中,并手动部署该内容包
  • 扩展Maven构建以创建一个包含运行时所需捆绑包的内容包(例如
    org.apache.directory.api:api ldap客户端api:2.0.0.AM4
  • 使用硬盘上AEM的
    Install
    目录安装捆绑包:
    crx quickstart/Install

  • 它们各有优缺点。我通常选择选项3。我在这里写了一个很长的答案来解释这一点:

    如果您不需要它们,您可以在本节中排除它们,方法如下:

    <configuration>
      <instructions>
        <Import-Package>
          !org.apache.commons.pool2,
    
    
    !org.apache.commons.pool2,
    

    依此类推。

    如果您不需要它们,可以在本节中排除它们,方法如下:

    <configuration>
      <instructions>
        <Import-Package>
          !org.apache.commons.pool2,
    
    
    !org.apache.commons.pool2,
    

    等等。

    理解了一个事实,即每个maven依赖项都不会自动安装在OSGi中。但是
    org.apache.directory.api:api ldap客户端api:2.0.0.AM4
    在手动安装时由于未解决依赖项而不处于活动状态。如果您阅读了我链接的答案,那么您是否可以在
    OSGi
    中使用任何依赖项,无论是手动部署还是使用maven build@AbhishekSinha,我解释了如何构建包含缺少的依赖项的LDAP库包。了解每个maven依赖项都无法安装的事实在OSGi中自动运行。但是由于未解析的依赖关系,手动安装时,AM4不会处于活动状态。在
    OSGi
    中是否有任何依赖项可用于手动部署或与maven build一起部署
    @AbhishekSinha如果您阅读了我链接的答案,我解释了如何构建包含缺少的依赖项的LDAP库包。它们是必需的。无法排除它们。在这种情况下,try with:Export package用于定义当前捆绑包的包,当作为依赖项添加时,这些包可能可供其他捆绑包使用。这些包是必需的。无法排除它们。在这种情况下,try with:Export package用于定义当前捆绑包的包,当添加为依赖项时,该包可供其他捆绑包使用。您需要从依赖项中创建一个依赖项OSGI捆绑包(jar)并上传到AEM sling控制台。您可以在线找到从jar转换OSGI捆绑包的信息。您需要从依赖项中创建一个依赖项OSGI捆绑包(jar),并上传到AEM sling控制台。您可以在线找到从jar转换OSGI包的信息。
    
    <configuration>
      <instructions>
        <Import-Package>
          !org.apache.commons.pool2,