AEM 6:OSGi包依赖关系未得到解决

时间:2015-05-11 01:58:47

标签: osgi cq5 aem

我试图通过创建一个OSGi包来使用Jsoup库。我之前已经创建了这些包,所以我对这个过程非常熟悉。我还在pom.xml中添加了依赖项,如下所示:

    <dependency>
       <groupId>org.jsoup</groupId>
       <artifactId>jsoup</artifactId>
       <version>1.7.3</version>
    </dependency>   

我也遵循此处给出的步骤:https://helpx.adobe.com/experience-manager/using/html-parser-service.html

我已尝试过所有内容,但依赖项仍未解决。附上截图。

我该怎么办?

提前致谢enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

版本不匹配。您的捆绑包取决于包org.jsoup和版本为1.7或更高版本的朋友。严格来说,它从1.7.0(含)版本导入到版本2.0.0(独家)。

但是,运行时安装的软件包将导出为0.0.0版。因此,导入与可用导出不匹配,并且您的捆绑无法解析。

您似乎需要找到一个导出为1.7版的org.jsoup软件包,并将其安装到您的运行时而不是您在此处使用的软件包。

答案 1 :(得分:0)

有多种方法可以解决您的问题:

  1. 强制导入由Jsoup捆绑包导出的0.0.0版本。 (最简单)
    这可以通过更新使用Jsoup包的bundle的Import-Package部分来执行:
  2.   <Import-Package>
      org.jsoup.*;resolution:=required;version="[0.0,0.1)"
      </Import-Package>
    
    1. 使用Maven POM包装您的Jsoup依赖项,并通过更新Export-Package部分(可选)设置您要导出的版本:
    2.  <Export-Package>
       org.jsoup.*;version="1.7.2"
       </Export-Package>
      

      详细信息:http://www.cqblueprints.com/tipsandtricks/build-and-deploy-osgi/deploy-third-party-libs.html

      1. 将另一个Jsoup JAR安装为OSGi包。
        原来的Jsoup 1.7.2(http://mvnrepository.com/artifact/org.jsoup/jsoup/1.7.2)在我的项目中表现很好。

      2. 更新您的Maven&#34;依赖关系&#34;要导入的项目:

      3. <dependency>
            <groupId>com.adobe.cq.jsoup</groupId>
            <artifactId>jsoupservice-bundle</artifactId>
            <version>1.0-SNAPSHOT</version>  
        </dependency>