相关疑难解决方法(0)

无法在Java 9中为自动生成的模块名称派生模块描述符?

我的项目依赖于Netty Epoll传输.这是依赖:

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-transport-native-epoll</artifactId>
    <version>${netty.version}</version>
    <classifier>${epoll.os}</classifier>
</dependency>
Run Code Online (Sandbox Code Playgroud)

此依赖项的自动生成的模块名称为:

netty.transport.native.epoll
Run Code Online (Sandbox Code Playgroud)

由于native关键字是在Java 9中保留的,我无法将此模块作为依赖项添加到我的项目中:

module core {
    requires netty.transport.native.epoll;
}
Run Code Online (Sandbox Code Playgroud)

由于:

module not found: netty.transport.<error>
Run Code Online (Sandbox Code Playgroud)

此外,jar工具--describe-module报告以下内容:

无法导出模块描述符:网状输送本地-epoll的-4.1.17.Final-快照Linux的x86_64.jar netty.transport.native.epoll:无效的模块名称:"天然"是不是Java标识符

有没有解决方法?(当然,除了"发布正确的网络工件").

编辑:

作为维护者的快速修复 - 您可以添加下一行来构建:

<manifestEntries>
   <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>
Run Code Online (Sandbox Code Playgroud)

java netty java-9 java-module module-info

19
推荐指数
1
解决办法
6923
查看次数

标签 统计

java ×1

java-9 ×1

java-module ×1

module-info ×1

netty ×1