maven-scr-plugin завершается ошибкой с SCRDescriptorException "невозможно сканировать файлы... Формат файла класса, вероятно, не поддерживается ASM?"
Используя следующие зависимости (среди прочего, предполагается, что комплект будет установлен в 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.
Кто-нибудь сталкивался с этим и нашел решение?
2 ответа
Я столкнулся с этим вопросом сегодня. Это происходит, когда вы запускаете maven-scr-plugin с опцией scanClasses=true. Старые версии maven-scr-plugin не могут сканировать файл классов, сгенерированный java8. вам придется либо перейти на более новую версию плагина scr (я обновился до 1.22), либо установить целевую конфигурацию maven-compiler-plugin на 1.7
Я обнаружил, что причиной является мой плагин Felix SCR Annotation Processor, который я установил на свой Intellij в качестве предварительного условия использования aem-ide-tooling-4-intellij из headwirecom. Это работало довольно долго, и до сегодняшнего дня у меня внезапно возникла проблема с запуском моих модульных тестов (разумеется, в моих версиях java, mvn или в моей IDE не было никаких изменений).
Это заставило меня обновить версию Java, версию Intellij, но не устранил проблему. Но отключенный плагин аннотации SCR исправил это.
Как видите, этот плагин действительно старый (2014). Я надеюсь, что они скоро выпустят более новую версию.