6

使用以下依赖项(其中,捆绑包应该安装到 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:无法扫描类文件:...(ASM 可能不支持类文件格式?)在 org.apache.felix.scrplugin.helper.ClassScanner.processClass(ClassScanner. java:219) 在 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 更多

原因:org.objectweb.asm.ClassReader.(Unknown Source) at org.objectweb.asm.ClassReader.(Unknown Source) at org.objectweb.asm.ClassReader.(Unknown Source) 处的 java.lang.IllegalArgumentException。 apache.felix.scrplugin.helper.ClassScanner.processClass(ClassScanner.java:201)

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

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

4

2 回答 2

4

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

于 2016-08-14T19:37:49.323 回答
2

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

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

在此处输入图像描述

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

于 2017-09-25T08:42:37.283 回答