java - 从嵌套同级模块导入时出现 Maven 编译错误
问题描述
我正在处理一个多模块 Maven 项目,并尝试将依赖类从嵌套在父级的一个子级中的模块导入到嵌套在其兄弟级中的模块中。这是项目的简化层次结构:
pom.xml (parent)
|--A
|--pom.xml
|--C
|--pom.xml
|--src
|--B
|--pom.xml
|--D
|--pom.xml
|--src
这是 C 模块中的一个类:
Dummy.java
package com.xyz.A.C;
import com.xyz.B.D.DummyDependency;
public class Dummy {
public static int callDependency(int num) {
return dummyDependency.absoluteVal(num);
}
}
这是 D 模块中的一个类:
DummyDependency.java
package com.xyz.B.D;
public class DummyDependency {
/**
* Return the absolute value of a number.
* @param num an integer
*/
public static int absoluteVal(int num) {
if (num > 0) {
return num;
} else {
return -num;
}
}
}
当我运行时,mvn clean install
我收到类似于以下内容的编译错误:
如何在没有编译错误的情况下访问嵌套在子模块的兄弟中的模块?
解决方案
不要依赖构建顺序。如果 module 中的类D
需要使用module 中的类C
,则应显式依赖它:
<dependencies>
<dependency>
<groupId>com.xyz</groupId>
<artifactId>A.C</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
推荐阅读
- javascript - Facebook 评论插件未加载到 Github 页面
- arrays - 我可以使用单线从切片中的位置 n 弹出一个元素吗?
- r - R:我可以在不改变主环境的情况下运行 source() 的代码吗?
- c++ - 为什么 memoization 会给出错误的输出?
- css - CSS 选择除页脚之外的所有img
- node.js - Rabbitmq nodejs 关闭连接
- regex - How can I extract a percentage number without the "%" symbol from a string?
- c - 如何准备或编译从 github 克隆的第三方库,以便在我的程序中引用它?
- typescript - 如何在 tsx 文件的渲染函数中从外部文件获取数据
- algorithm - 无向图的着色