我有以下依赖项: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上的包。
答案 0 :(得分:3)
首先,如评论中所述,您需要一个版本标记或从某些依赖关系管理中获取版本。其次,m2e(Eclipse插件)并不总是正确地确定依赖关系。尝试使用Maven构建(运行为 - &gt; Maven构建),看看是否有任何错误。
第三:如果您使用B中的类,您还应该将B列为依赖项。依赖B间接绘制是危险的(A可能会改变其未来的依赖关系)并隐藏你的真实&#34;的依赖关系。