我的项目的结构是这样的。
Artifact A
|- depends on hadoop-client.jar
|- cloudera repository is added to pom
pom.xml
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>always</updatePolicy>
</releases>
<id>central</id>
<name>libs-release</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
</repository>
现在,A编译良好,已打包为jar并推入工件(jfrog一个)
Artifact B
|- depends on A
|- doesn't have cloudera repo in pom
pom.xml
<dependency>
<groupId>groupId</groupId>
<artifactId>artifact_a</artifactId>
</dependency>
工件B无法使用A中添加的回购协议,并且在编译时出错。
"Could not find artifact org.apache.hadoop:hadoop-client:jar:2.0.0-cdh4.2.0"
我有什么想念的吗?
不想在Artifact B的pom中添加cloudera回购。
最佳答案
Maven仅从父POM继承存储库信息,而不从依赖项继承。
您可以创建第三个POM C,该C声明存储库,A和B继承自该存储库-它将起作用。
前一阵子陷入同一个坑...;)