【发布时间】:2017-04-13 16:13:00
【问题描述】:
我有以下依赖:A、B、X。“->”表示依赖。
A -> B
X -> A
B 有以下公共类:
public class PublicClassB {
public static void do() {
}
}
PublicClassB 被 X 和 A. E. 使用。
A 类的 pom 如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.company.name</groupId>
<artifactId>A</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>my.company.name</groupId>
<artifactId>B</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
X 的 pom 如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.company.name</groupId>
<artifactId>X</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>my.company.name</groupId>
<artifactId>A</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
有没有办法从 X 访问 PublicClassB#do()?我无法使导入工作,Eclipse 没有检测到 B 上的包。
【问题讨论】:
-
这应该没有问题。如果不是,那么可能是您的 Maven 设置不正确,或者您的 Maven 存储库中没有最新版本的 A 或 B,或者必须刷新 Eclipse,等等。
-
您的 A、B 和 X 类存储库是哪个?而且我认为您还必须在每个
中指定 1.0.0 -
@SergioMontoro 是的对不起我的错误,添加了版本标签
-
已解决,当 B 被声明为对 X 的依赖时,maven 导入 B 作为对项目的引用。引用已损坏,因此找不到项目,这就是为什么类没有在 Eclipse 上加载的原因。将
false 添加到 maven-eclipse-plugin 解决了这个问题。
标签: java maven dependencies pom.xml