我们已经使用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
No DS descriptor found at path target/classes/OSGI-INF/com.xxxxxxx.core.filters.LoggingFilter.xml
该文档指出:“经常发生的情况是,使用maven-scr-plugin的Maven项目通常在target / scr-plugin生成的目标/类之外生成描述符。要解决此问题,请确保您重新使用maven-scr-plugin 1.15.0或更高版本,并且您尚未设置自定义outputDirectory。”

不幸的是,开箱即用的生成项目似乎并非如此。根本不生成描述符。将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框架中没有实现声明式服务时,您会看到此错误。确保在felix控制台中看到Apache Felix Declarative Services (org.apache.felix.scr)捆绑包处于活动状态并正在运行。

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

这个article应该为您提供使用官方注释的快速入门。

10-08 09:08