作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在处理一个多模块 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
时,出现类似于以下内容的编译错误:
如何在不出现编译错误的情况下访问嵌套在子模块的兄弟模块中的模块?
最佳答案
不要依赖构建顺序。如果模块 D
中的类需要使用模块 C
中的类,您应该显式依赖它:
<dependencies>
<dependency>
<groupId>com.xyz</groupId>
<artifactId>A.C</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
关于java - 从嵌套兄弟模块导入时 Maven 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54396403/
我是一名优秀的程序员,十分优秀!