Мой проект зависит от транспорта 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
сообщает следующее:
Невозможно получить дескриптор модуля для: Нетти-транспортно-нативной Epoll-4.1.17.Final-ПАНОРАМА-линукс-x86_64.jar netty.transport.native.epoll: Недопустимое имя модуля: "native" не является Идентификатор Java
Есть ли способы обхода? (за исключением, конечно, "исправления исходного нетто-артефакта" ).
В качестве быстрого исправления для сопровождающих - вы можете добавить следующую строку для сборки:
<manifestEntries>
<Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>