我的项目的结构是这样的。

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继承自该存储库-它将起作用。

前一阵子陷入同一个坑...;)

09-25 18:46
查看更多