首页 > Java > java教程 > Java 9 模块描述符错误:如何处理自动生成的名称,如'native”?

Java 9 模块描述符错误:如何处理自动生成的名称,如'native”?

Barbara Streisand
发布: 2024-11-28 17:36:10
原创
787 人浏览过

Java 9 Module Descriptor Errors: How to Handle Auto-Generated Names like

Java 9 无法为自动生成的名称派生模块描述符:探索解决方法

在 Java 9 中,模块的引入提出了一个要求根据Java标识符规则定义模块名称。然而,这一要求对某些自动生成的模块名称提出了挑战,特别是那些包含关键字“native”的模块名称。

考虑 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 标识符规则

要解决此问题,一种潜在的解决方法是修改工件的 META-INF/MANIFEST.MF 文件以包含 Automatic-Module-Name 属性。此属性定义模块名称,因为它应该在模块描述符中使用:

<manifestEntries>
   <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>
登录后复制

但是,此解决方案需要与工件所有者协作,使其成为一个不太直接的选择。

An另一种方法是让工件所有者在其 JAR 中使用 module-info.java 包含模块声明。此操作会触发自下而上的迁移过程,其中假定不提供模块信息的依赖项导出所有包。

以上是Java 9 模块描述符错误:如何处理自动生成的名称,如'native”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板