2017-06-26 1 views
2

travaillant avec les modules java 9, si j'utilise java.xml dans mon code ...
1) J'importerai le paquet de xml en utilisant la déclaration d'importation ...
2) si je ne mentionne pas que ce paquet est exigé dans la déclaration de module de mon module ...
- la compilation de mon module fonctionnera-t-elle? .. ??
je devinerais ... non ... et en mentionnant que le paquet de xml est exigé sur module-info.java ... cela pourrait fonctionner.
donc .. ce que je me demande est ... n'est-ce pas la redondance ... chaque paquet d'importation est implicitement ... nécessaire. (sauf si j'ai besoin de mieux comprendre le module)java 9: ​​Dans module-info.java dois-je à nouveau mentionner les paquets ((comme requis) qui sont déjà importés dans les sources

Existe-t-il un moyen de mentionner que tous les paquets importés sont requis dans la déclaration du module, sinon cela pourrait être une longue liste à mentionner dans module-info.java?

Répondre

4

Tout d'abord, dans module-info.java, vous mentionnez des modules, pas des packages. Par exemple. java.xml est un module qui contient environ 25 paquets. Donc, si votre module utilise 10 paquets du module java.xml, vous n'avez pas à le répéter 10 fois dans module-info.java, vous écrivez requires java.xml une seule fois. Donc, cette énorme liste de dépendances n'est pas énorme en fait.

Si vous voulez vraiment ignorer toutes ces déclarations, vous ne pouvez pas créer module-info.java (mais je ne recommande pas de le faire). Un module qui n'a pas module-info.java est appelé un module automatique et nécessite implicitement tous les autres modules.

+0

c'est l'explication de gr8. super. _ "Cependant, java.xml n'est pas dans le graphe du module par défaut, donc vous devez passer" _. Ma compréhension est seulement 'java.base' est disponible par défaut. De quel graphique de module parlez-vous? Un exemple? – Victor

+1

@Victor Voir http://openjdk.java.net/jeps/261 (section 'Root modules') – ZhekaKozlov

+2

Le module _java.xml_ est inclus par défaut (essayez-le avec 'java --limit-modules java.se - list-modules'), donc pas besoin de s'inquiéter là. À propos, la confusion entre les modules et les paquets est pourquoi j'utilise _italics_ pour le premier et «formatage de code» pour le dernier. – Nicolai