2017-08-04 1 views
3

J'ai 2 projets différents dans le même dossier: com.jdojo.address et com.jdojo.person. Le premier a une simple classe POJO Address et un sous module-info.java paquet par défaut:Impossible de trouver les modules de module-info.java

module com.jdojo.address { 
    exports com.jdojo.address; 
} 

Aucune erreur ici.

Dans le projet com.jdojo.person, j'ai une classe Person qui utilise un attribut Address du précédent. Le module-info.java:

module com.jdojo.person { 
    requires com.jdojo.address; 
    exports com.jdojo.person; 
} 

J'ai une erreur dans la requires ligne:

Module non trouvé: com.jdojo.address

J'ai cette question à la fois avec NetBeans IDE Dev (Build 201708030001) et IntelliJ IDEA 2017.2.1.

├───com.jdojo.address 
│ ├───.idea 
│ │ └───inspectionProfiles 
│ ├───nbproject 
│ │ └───private 
│ └───src 
│  └───com 
│   └───jdojo 
│    └───address 
├───com.jdojo.intro 
│ ├───.idea 
│ │ ├───inspectionProfiles 
│ │ └───libraries 
│ ├───build 
│ │ ├───classes 
│ │ │ └───com 
│ │ │  └───jdojo 
│ │ │   ├───address 
│ │ │   ├───intro 
│ │ │   └───person 
│ │ ├───empty 
│ │ └───generated-sources 
│ │  └───ap-source-output 
│ ├───dist 
│ ├───nbproject 
│ │ └───private 
│ ├───src 
│ │ └───com 
│ │  └───jdojo 
│ │   └───intro 
│ └───test 
├───com.jdojo.person 
│ ├───.idea 
│ │ └───inspectionProfiles 
│ ├───nbproject 
│ │ └───private 
│ ├───src 
│ │ └───com 
│ │  └───jdojo 
│ │   └───person 
│ └───test 
├───lib 
├───mods 
│ └───com.jdojo.intro 
│  └───com 
│   └───jdojo 
│    └───intro 
└───src 
    └───com.jdojo.intro 
     └───com 
      └───jdojo 
       └───intro 

Ce sont les classes du module-info et java chemins

C:\Java9Revealed\com.jdojo.address\src\module-info.java 
C:\Java9Revealed\com.jdojo.address\src\com\jdojo\address\Address.java 

C:\Java9Revealed\com.jdojo.person\src\module-info.java 
C:\Java9Revealed\com.jdojo.person\src\com\jdojo\person\Person.java 
+1

Est-ce exactement le même message dans IntelliJ? Lorsque vous ajoutez simplement un module aléatoire en tant que dépendance, il apparaît en rouge dans les informations du module car les modules IntelliJ doivent également avoir la dépendance correspondante. Sinon, vous obtenez "Module n'est pas dans les dépendances: ..." mais une solution rapide va l'ajouter. Si ce n'est pas le problème, pouvez-vous partager la disposition exacte des dossiers? – Nicolai

+0

Dans Intellij j'ai le même message 'module introuvable: com.jdojo.address'. J'ai ajouté un arbre du dossier si cela peut aider, j'ai laissé l'autre projet précédent 'com.jdojo.intro'. – MrSir

Répondre

4

Par the Quick Start guide, il est convention de mettre le code source dans un dossier portant le nom du module. Dans ce cas, la structure du dossier doit être:

com.jdojo.address/src/com.jdojo.address/module-info.java 
com.jdojo.address/src/com.jdojo.address/com/jdojo/address/Address.java 

com.jdojo.person/src/com.jdojo.person/module-info.java 
com.jdojo.person/src/com.jdojo.person/com/jdojo/person/Person.java 

Il est éclairante à expérimenter en utilisant des outils de ligne de commande, indépendamment de tout IDE. J'ai illustré ce cas here.

+0

Je les ai ajoutés à la fin – MrSir

+0

Malheureusement, je ne sais pas ce que cela signifie. Qu'avez-vous ajouté? –

+0

A la fin de la publication, j'ai ajouté mes chemins d'adresse, de personne et de module-info – MrSir