【问题标题】:maven-scr-plugin fails with SCRDescriptorException "unable to scan files ... Class file format probably not supported by ASM ?"maven-scr-plugin 失败并出现 SCRDescriptorException “无法扫描文件...... ASM 可能不支持类文件格式?”
【发布时间】:2015-10-20 14:00:11
【问题描述】:

使用以下依赖项(其中,捆绑包应该安装到 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) 在 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注解的类中。

有没有人遇到过这个问题并找到了解决办法?

【问题讨论】:

    标签: aem apache-felix maven-scr-plugin


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-24
        • 2019-10-18
        • 1970-01-01
        • 1970-01-01
        • 2018-11-04
        • 1970-01-01
        • 1970-01-01
        • 2012-03-25
        相关资源
        最近更新 更多