maven-scr-plugin因SCRDescriptorException而失败"无法扫描文件... ASM可能不支持类文件格式?"

时间:2015-10-20 14:00:12

标签: aem apache-felix 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-annotations:1.2.8

我得到了这个例外

  

引起:org.apache.felix.scrplugin.SCRDescriptorException:无法扫描类文件:...   (ASM可能不支持类文件格式?)     在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.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:146)     at org.apache.felix.scrplugin.mojo.SCRDescriptorMojo.execute(SCRDescriptorMojo.java:221)     ......还有22个

     

引起:java.lang.IllegalArgumentException     在org.objectweb.asm.ClassReader。(未知来源)     在org.objectweb.asm.ClassReader。(未知来源)     在org.objectweb.asm.ClassReader。(未知来源)     在org.apache.felix.scrplugin.helper.ClassScanner.processClass(ClassScanner.java:201)

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

我发现我安装到我的Intellij的Felix SCR Annotation Processor插件是使用headwirecom的aem-ide-tooling-4-intellij的先决条件导致了这个问题。它工作了很长一段时间,直到今天突然给我一个运行我的单元测试的问题(不用说,我的java,mvn版本或我的IDE中没有进行任何更改)。

这迫使我更新我的java版本,intellij版本,但没有解决问题。但禁用SCR注释插件修复它。

enter image description here

正如你所看到的,这个插件真的很旧(2014)。我希望他们能尽快发布新版本。