web-dev-qa-db-ja.com

maven-bundle-pluginが「無効なクラスファイルmodule-info.class」で失敗する

JPMSモジュールを含む依存関係を追加した後、maven-bundle-plugin(バージョン3.3.0)は次のように失敗します。

[INFO] --- maven-bundle-plugin:3.3.0:bundle (default-bundle) @ my-bundle ---
[ERROR] Bundle myGroup:my-bundle:bundle:1.0 : 
        Exception: Java.lang.ArrayIndexOutOfBoundsException: 19
[ERROR] Bundle myGroup:my-bundle:bundle:1.0 : 
        Invalid class file module-info.class (Java.lang.ArrayIndexOutOfBoundsException: 19)

プラグインはmodule-info.classを分析しようとしているようです(そして失敗しているようです)。これはOSGiコンテキストでは無関係であるはずです。

9
gjoranv

バンドルプラグインをバージョン3.5.0にアップグレードすると、問題が解決しました。

<plugin>
  <groupId>org.Apache.felix</groupId>
  <artifactId>maven-bundle-plugin</artifactId>
  <version>3.5.0</version>
</plugin>

また、プラグインの最新バージョンがmaven 3.3でNPEをスローしたため、mavenを3.5にアップグレードする必要がありました。

Failed to execute goal org.Apache.felix:maven-bundle-plugin:3.5.0:bundle (default-bundle) on project my-bundle: Execution default-bundle of goal org.Apache.felix:maven-bundle-plugin:3.5.0:bundle failed. NullPointerException

参照 FELIX-5698

更新: Maven Central でバンドルプラグインの最新バージョンを確認してください。 Mavenの最新バージョンは、 ダウンロードページ にあります。

13
gjoranv

IntelliJを使用している場合、この問題が原因でMaven構成が最新であるにもかかわらず、この問題が発生する可能性があります: https://youtrack.jetbrains.com/issue/IDEA-194358

回避策は、Osmorcプラグインをオフにすることです

2
Lukas Eder