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.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 詳細

原因: org.objectweb.asm.ClassReader での java.lang.IllegalArgumentException。(不明なソース) org.objectweb.asm.ClassReader で。(不明なソース) org.objectweb.asm.ClassReader で。(不明なソース) org. apache.felix.scrplugin.helper.ClassScanner.processClass(ClassScanner.java:201)

問題のクラスには osgi アノテーションがまったく含まれていませんが、他の @Component アノテーションが付けられたクラスにインポートされているだけです。

誰かがこれに遭遇し、解決策を見つけましたか?

4

2 に答える 2

4

今日、この問題に遭遇しました。これは、maven-scr-plugin を scanClasses=true オプションで実行している場合に発生します。古いバージョンの maven-scr-plugin は、java8 によって生成されたクラスファイルをスキャンできません。新しいバージョンの scr プラグイン (1.22 にアップグレードしました) に切り替えるか、maven-compiler-plugin ターゲット構成を 1.7 に設定する必要があります。

于 2016-08-14T19:37:49.323 に答える
2

headwirecom の aem-ide-tooling-4-intellij を使用するための前提条件として Intellij にインストールした Felix SCR Annotation Processor プラグインが問題の原因であることがわかりました。今日、ユニットテストの実行で突然問題が発生するまで、かなり長い間機能していました(言うまでもなく、Java、mvnバージョン、またはIDEに変更はありませんでした)。

これにより、Java バージョン、intellij バージョンを更新する必要がありましたが、問題は解決しませんでした。しかし、SCR注釈プラグインを無効にすると修正されました。

ここに画像の説明を入力

ご覧のとおり、このプラグインは非常に古いものです (2014 年)。彼らがすぐに新しいバージョンをリリースすることを願っています。

于 2017-09-25T08:42:37.283 に答える