私のプロジェクトは Netty Epoll トランスポートに依存しています。依存関係は次のとおりです。
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>${netty.version}</version>
<classifier>${epoll.os}</classifier>
</dependency>
この依存関係の自動生成されたモジュール名は次のとおりです。
netty.transport.native.epoll
またnative
、Java 9 ではキーワードが予約されているため、このモジュールを依存関係としてプロジェクトに追加することはできません。
module core {
requires netty.transport.native.epoll;
}
のため:
module not found: netty.transport.<error>
さらに、jar ツール--describe-module
は次のように報告します。
次のモジュール記述子を取得できません: netty-transport-native-epoll-4.1.17.Final-SNAPSHOT-linux-x86_64.jar netty.transport.native.epoll: 無効なモジュール名: 'native' は Java 識別子ではありません
回避策はありますか? (もちろん、「正しいnettyアーティファクトをリリースする」を除く)。
編集:
メンテナー向けの簡単な修正として、次の行をビルドに追加できます。
<manifestEntries>
<Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>