我的项目结构如下。
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并推送到artifactory(jfrog one)
Artifact B
|- depends on A
|- doesn't have cloudera repo in pom
的pom.xml
<dependency>
<groupId>groupId</groupId>
<artifactId>artifact_a</artifactId>
</dependency>
Artifact B无法使用在A中添加的repo并在编译时出错。
"Could not find artifact org.apache.hadoop:hadoop-client:jar:2.0.0-cdh4.2.0"
我错过了什么吗? 不想在神器B的pom中添加cloudera repo。
答案 0 :(得分:3)
Maven只从父POM继承存储库信息,但不从依赖项继承。 您可以创建第三个POM C,它声明存储库,A和B从中继承 - 这将起作用。
一会儿倒入同一个坑......;)