繁体   English   中英

从其他模块导入

[英]Import from other module

我使用JavaMaven编写项目。 在项目中我有很多模块。 我的问题是我无法从其他模块导入类。

我的项目结构如下所示:

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

module1module2是我项目中的Modules ,在pom.xml ——主项目pom

而当我在Person.javamodule1我想导入Robot.javamodule2 ,但我不能这样做import com.xyz.project.md2.Robot 为什么?

在 module1/pom.xml 中声明对 module2 的依赖,如下所示:

<dependencies>
    ...
            <dependency>
                <groupId>XX</groupId>
                <artifactId>module2</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
    ...
</dependencies>

必须在module1的项目中添加module2的项目作为依赖(maven依赖)。 多模块并不意味着所有模块都自动相互依赖

Maven 中处理多模块项目的机制如下:

  • 收集所有可用的模块来构建
  • 将项目排序为正确的构建顺序
  • 按顺序构建选定的项目

在模块 2 的 build.gradle 中:

dependencies {
    compile(project(":module1")) {
        transitive = false
    }
     ...
     //Other dependencies
     ...
}

transitive = false确保不导入依赖项的依赖项。 仅导入您的源部分

注意 - 虽然这个问题使用 Maven,但我们大多数人使用 Gradle。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM