maven - 如何修复 AEM 6.3 - Maven Archetype 12 "No DS descriptor found"错误?

标签 maven osgi aem osgi-bundle sling

我们已经使用 Maven Archetype 12 创建了一个 AEM 6.3 项目。我们还没有编写任何代码,只是试图构建导入到 Eclipse 中的空项目。

我们收到文档中提到的错误: https://sling.apache.org/documentation/development/ide-tooling.html#why-do-i-get-an-error-about-no-ds-descriptor-found-at

在路径 target/classes/OSGI-INF/com.xxxxxxx.core.filters.LoggingFilter.xml 中找不到 DS 描述符

文档指出,“一个经常发生的情况是使用 maven-scr-plugin 的 Maven 项目在目标/类之外生成描述符,通常在目标/scr-plugin-generated 中。要解决这个问题,请确保您使用的是 maven-scr-plugin 1.15.0 或更新版本,并且您没有设置自定义输出目录。

不幸的是,我们开箱即用的生成项目似乎并非如此。根本没有生成描述符。将 maven-scr-plugin 升级到 1.15.0 甚至 1.26.0 都不会改变症状。

此问题的正确解决方法是什么?

环境版本信息

Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T12:39:06-07:00)
Maven home: C:\usr\apache-maven-3.5.0\bin\..
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_131\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

我可以始终如一地重现错误。所有步骤都记录在这个 2-minute video

最佳答案

当 OSGI 框架中没有实现声明式服务时,您会看到此错误。确保您看到 Apache Felix Declarative Services (org.apache.felix.scr) bundle 处于事件状态并在您的 felix 控制台中运行。

或者(推荐),您可以使用 OSGI R6 的官方注释。根据felix docs ,Apache Felix SCR 插件的开发处于维护模式。如果您使用的是官方 osgi 注释,则不需要 mvn-scr-plugin

article应该可以让您快速开始使用官方注释。

关于maven - 如何修复 AEM 6.3 - Maven Archetype 12 "No DS descriptor found"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48528743/

相关文章:

aem - cq5 AEM 'pathfield' 调整大小

java - VS Code 知道 Scala 和 Java,但无法连接它们

maven - 如何在settings.xml中定义maven系统属性?

java - com.akamai.edgegrid.signer 无法解析

java - OSGI插件访问resources.jar中的文件

AEM6 组件允许 child 不工作

adobe - 如何在 AEM 上编辑 Teaser 的选项卡选项顺序?

java - Maven 2 项目

java - maven插件组件注入(inject)null

java - Jersey、osgi 和 Servlet 上下文 3.x