dan*_*rba 6 java dependencies pom.xml maven
我有以下依赖项:A、B 和 X。“->”表示依赖。
A -> B
X -> A
Run Code Online (Sandbox Code Playgroud)
B 有以下公共类:
public class PublicClassB {
public static void do() {
}
}
Run Code Online (Sandbox Code Playgroud)
PublicClassB由 X 和 AE 使用
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
有没有办法从 X访问PublicClassB#do() ?我无法进行导入,Eclipse 没有检测到 B 上的包。
首先,正如评论中提到的,您需要一个版本标记或从某些依赖项管理中获取版本。其次,m2e(Eclipse 插件)并不总是正确确定依赖关系。尝试使用 Maven 进行构建(运行方式 -> Maven 构建)并查看是否出现任何错误。
第三:如果您使用 B 中的类,您还应该将 B 列为依赖项。间接依赖 B 绘制是危险的(A 将来可能会更改其依赖项),并且还会隐藏您的“真实”依赖项。
| 归档时间: |
|
| 查看次数: |
1922 次 |
| 最近记录: |