2017-08-04 43 views
3

我在同一个文件夹中有两个不同的项目:com.jdojo.addresscom.jdojo.person。首先有一个简单的POJO类Address和默认包下一个module-info.java:这里无法从module-info.java中找到模块

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

没有错误。

com.jdojo.person项目中,我有一个Person类,它使用前一个属性的Address属性。该module-info.java

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

我在requires行错误:

模块未找到:com.jdojo.address

我都用NetBeans IDE的开发这个问题(Build 201708030001)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 

这些模块,信息和Java类路径

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

这是IntelliJ完全相同的消息吗?当只添加随机模块作为依赖项时,它会在模块信息中显示为红色,因为IntelliJ模块也需要具有相应的依赖关系。否则,你会得到“模块不在依赖关系中......”,但快速修复会添加它。如果这不是问题,你能分享确切的文件夹布局吗? – Nicolai

+0

在Intellij中我有相同的消息'找不到模块:com.jdojo.address'。我已经添加了文件夹的树,如果可以帮助,我已经离开了其他以前的项目'com.jdojo.intro'。 – MrSir

回答

4

the Quick Start guide,这是惯例把源代码的模块命名的文件夹中。在这种情况下,文件夹结构应该是:

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 

这是使用命令行工具进行实验的独立于任何IDE的照明。我已经说明了这种情况here

+0

我已将它们添加到末尾 – MrSir

+0

不幸的是,我不知道这意味着什么。你补充了什么? –

+0

在帖子结尾,我已经添加了我的地址,人员和模块信息路径 – MrSir