Heim > Java > javaLernprogramm > Java 9-Moduldeskriptorfehler: Wie gehe ich mit automatisch generierten Namen wie „native' um?

Java 9-Moduldeskriptorfehler: Wie gehe ich mit automatisch generierten Namen wie „native' um?

Barbara Streisand
Freigeben: 2024-11-28 17:36:10
Original
730 Leute haben es durchsucht

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

Java 9 kann keinen Moduldeskriptor für automatisch generierte Namen ableiten: Problemumgehungen untersuchen

In Java 9 führte die Einführung von Modulen zu einer Anforderung um Modulnamen gemäß den Java-Identifikatorregeln zu definieren. Diese Anforderung stellt jedoch eine Herausforderung für bestimmte automatisch generierte Modulnamen dar, insbesondere für solche, die das Schlüsselwort „native“ enthalten.

Betrachten Sie den Fall der Netty Epoll-Transportabhängigkeit:

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-transport-native-epoll</artifactId>
    <version>${netty.version}</version>
    <classifier>${epoll.os}</classifier>
</dependency>
Nach dem Login kopieren

Der automatisch generierte Modulname für diese Abhängigkeit lautet „netty.transport.native.epoll“, was aufgrund des Vorhandenseins des „nativen“ gegen die Java-Identifikatorregeln verstößt. Schlüsselwort.

Um dieses Problem zu beheben, besteht eine mögliche Problemumgehung darin, die Datei META-INF/MANIFEST.MF des Artefakts so zu ändern, dass sie das Attribut Automatic-Module-Name enthält . Dieses Attribut definiert den Modulnamen, wie er im Moduldeskriptor verwendet werden soll:

<manifestEntries>
   <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>
Nach dem Login kopieren

Diese Lösung erfordert jedoch die Zusammenarbeit mit den Eigentümern des Artefakts, was sie zu einer weniger unmittelbaren Option macht.

An Ein alternativer Ansatz besteht darin, dass Artefakteigentümer Moduldeklarationen mithilfe von module-info.java in ihre JARs aufnehmen. Diese Aktion löst einen Bottom-up-Migrationsprozess aus, bei dem davon ausgegangen wird, dass Abhängigkeiten, die keine Modulinformationen bereitstellen, alle Pakete exportieren.

Das obige ist der detaillierte Inhalt vonJava 9-Moduldeskriptorfehler: Wie gehe ich mit automatisch generierten Namen wie „native' um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage