修复 com.day.cq.commons,version=[5.7,6) 无法在 AEM 6.2 的 OSGi Bundles 中解析

Fix com.day.cq.commons,version=[5.7,6) can't be resolved in OSGi Bundles in AEM 6.2

当您使用 AEM 6.2 时,您可能遇到过以下错误,

com.day.cq.commons,version=[5.7,6)-->can't be resolved

这发生在 AEM 6.2 版本中

我在下面回答了。

解决方案:

  1. 在 AEM 核心项目 pom.xml 文件中添加以下依赖项

    <dependency>
          <groupId>com.day.cq</groupId>
          <artifactId>cq-commons</artifactId>
          <version>5.7.4</version>
      </dependency>

  1. 在核心中添加导入包pom.xml

<Import-Package>
         com.day.cq.commons;version="[5.7.0,7.0)",
</Import-Package>

构建 Maven 并在 AEM 中部署项目。构建应处于活动状态。

参考文献:

指令是捆绑包中包含的软件包所需的软件包列表。此 header 的默认值为“*”,导致导入所有引用的包。

这个 header 很少需要明确指定。但是,在某些情况下,当存在不需要的导入时,可以使用否定包模式删除此类导入。包模式的工作方式与 相同,这意味着它们是有序的。

例如,如果您想导入除org.foo.impl之外的所有包,您可以指定“!org.foo.impl,*”

此问题的另一个解决方案是:

将“cq-commons-5.9.26.jar”文件复制粘贴到/.m2/repository/com/day/cq/cq-commons/5.9.26

并将 pom 依赖更新到以下:

    <dependency>
        <groupId>com.day.cq</groupId>
        <artifactId>cq-commons</artifactId>
        <version>5.9.26</version>
        <scope>provided</scope>
    </dependency>