Mein Projekt hängt von Netty Epoll Transport ab. Hier ist die Abhängigkeit:Kann Moduldeskriptor für automatisch generierte Modulnamen in Java 9 nicht abgeleitet werden?
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>${netty.version}</version>
<classifier>${epoll.os}</classifier>
</dependency>
Die automatisch generierten Modulnamen für diese Abhängigkeit ist:
netty.transport.native.epoll
Und wie das native
Schlüsselwort in Java 9 reserviert Ich kann dieses Modul nicht als Abhängigkeit hinzufügen mein Projekt:
module core {
requires netty.transport.native.epoll;
}
Aufgrund:
module not found: netty.transport.<error>
Zusätzlich wird die JAR-Tool --describe-module
berichtet folgendes: netty-Transport-native-epoll-4.1.17.Final-snapshot-linux-x86_64.jar netty:
Unable Modulbeschreibers für abzuleiten. transport.native.epoll: Ungültige Modulname: 'native' ist kein Java Kennung
gibt es Workarounds? (außer "release korrekt netty artifact", natürlich).
EDIT:
Als schnelle Lösung für Maintainer - Sie nächste Zeile hinzufügen können, bauen:
<manifestEntries>
<Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>
Haben Sie den 'jar versuchen --file = --describe-module', um herauszufinden, sein automatischer Modulname? Wurde das auch von jar tool vorgeschlagen? –
nullpointer
'Der Moduldeskriptor kann nicht abgeleitet werden für: netty-transport-native-epoll-4.1.17.Final-SNAPSHOT-linux-x86_64.jar netty.transport.native.epoll: Ungültiger Modulname: 'native' ist kein Java Identifier' –
Ya Ich erinnere mich an eine Diskussion über die Mailing-Liste Ich habe über die Schlüsselwörter Einschränkung in Modulnamen Syntax gelesen. – nullpointer