Maison > Java > javaDidacticiel > Erreurs de descripteur de module Java 9 : comment gérer les noms générés automatiquement comme « natif » ?

Erreurs de descripteur de module Java 9 : comment gérer les noms générés automatiquement comme « natif » ?

Barbara Streisand
Libérer: 2024-11-28 17:36:10
original
800 Les gens l'ont consulté

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

Java 9 Impossible de dériver le descripteur de module pour les noms générés automatiquement : exploration des solutions de contournement

Dans Java 9, l'introduction de modules a donné lieu à une exigence pour définir les noms de modules selon les règles d'identification Java. Cependant, cette exigence pose un défi pour certains noms de modules générés automatiquement, en particulier ceux qui incluent le mot-clé « natif ».

Prenons le cas de la dépendance de transport Netty Epoll :

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-transport-native-epoll</artifactId>
    <version>${netty.version}</version>
    <classifier>${epoll.os}</classifier>
</dependency>
Copier après la connexion

Le nom du module généré automatiquement pour cette dépendance est "netty.transport.native.epoll", ce qui viole les règles d'identification Java en raison de la présence du "natif". mot-clé.

Pour résoudre ce problème, une solution de contournement potentielle consiste à modifier le fichier META-INF/MANIFEST.MF de l'artefact pour inclure l'attribut Automatic-Module-Name . Cet attribut définit le nom du module tel qu'il doit être utilisé dans le descripteur du module :

<manifestEntries>
   <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
</manifestEntries>
Copier après la connexion

Cependant, cette solution nécessite une collaboration avec les propriétaires de l'artefact, ce qui en fait une option moins immédiate.

Un Une approche alternative consiste à demander aux propriétaires d'artefacts d'inclure des déclarations de module en utilisant module-info.java dans leurs JAR. Cette action déclenche un processus de migration ascendant, dans lequel les dépendances qui ne fournissent pas d'informations sur le module sont supposées exporter tous les packages.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal