我使用Java
和Maven
编写项目。在项目中我有很多模块。我的问题是我无法从其他模块导入类。
我的项目结构如下:
Project
|_ module1
|_ src
|_ com.xyz.project.md1
|_ Person.java
|_ pom.xml <- pom of module1
|_ module2
|_ src
|_ com.xyz.project.md2
|_ Robot.java
|_ pom.xml <- pom of module2
|_ pom.xml <- main Project pom
module1
和module2
在我的项目中Modules
,已在pom.xml
注册 - 主要项目pom
当我从Person.java
开始module1
时,我想从Robot.java
导入module2
,但我无法使用import com.xyz.project.md2.Robot
执行此操作。 为什么?
答案 0 :(得分:20)
在module1 / pom.xml中声明对module2的依赖,如下所示:
<dependencies>
...
<dependency>
<groupId>XX</groupId>
<artifactId>module2</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
...
</dependencies>
答案 1 :(得分:2)
你必须在module1的项目中添加module2的项目作为依赖项(maven依赖项)。 多模块并不意味着所有模块都自动相互依赖
处理多模块项目的Maven机制执行以下操作:
Collects all the available modules to build
Sorts the projects into the correct build order
Builds the selected projects in order
希望这会有所帮助。
答案 2 :(得分:0)
在模块2的build.gradle中:
dependencies {
compile(project(":module1")) {
transitive = false
}
...
//Other dependencies
...
}
transitive = false
确保不导入依赖项的依赖项。仅导入您的源零件 p>
-尽管问题使用Maven,但我们大多数人使用Gradle。