maven-scr-plugin失败,并显示SCRDescriptorException“无法扫描文件... ASM可能不支持类文件格式?”

lai*_*ain 5 apache-felix aem maven-scr-plugin

使用以下依赖关系(其中,捆绑包应安装到AEM 6.1中)

运行时是java8

  • maven-scr-plugin 1.15.0
  • org.apache.felix.scr.annotations:1.9.8
  • org.apache.felix.scr.ds-注释:1.2.8

我得到这个例外

由以下原因引起:org.apache.felix.scrplugin.SCRDescriptorException:无法扫描类文件:...(org.apache.felix.scrplugin.helper.ClassScanner.processClass(ClassScanner。 java:219)位于org.apache.felix.scrplugin.helper.ClassScanner.process(ClassScanner.java:161)位于org.apache.felix.scrplugin.helper.ClassScanner.scanSources(ClassScanner.java:146)位于org.apache org.apache.felix.scrplugin.mojo.SCRDescriptorMojo.execute(SCRDescriptorMojo.java:221)的.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:146)... 22更多

由以下原因引起:org.objectweb.asm.ClassReader上的java.lang.IllegalArgumentException。(org上org.objectweb.asm.ClassReader。(未知源)上的org.objectweb.asm.ClassReader。(未知源)。 apache.felix.scrplugin.helper.ClassScanner.processClass(ClassScanner.java:201)

有问题的类根本不包含任何osgi注释,而只是导入到其他@Component注释的类中。

有没有人遇到这个问题并找到了解决方案?

awd*_*awd 5

我今天遇到了这个问题。当您使用 scanClasses=true 选项运行 maven-scr-plugin 时,会发生这种情况。旧版本的maven-scr-plugin无法扫描java8生成的类文件。您必须切换到较新版本的 scr 插件(我升级到 1.22)或将 maven-compiler-plugin 目标配置设置为 1.7