2

我的项目结构是这样的。

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>

Artifact B 无法使用 A 中添加的 repo 并在编译时出错。

"Could not find artifact org.apache.hadoop:hadoop-client:jar:2.0.0-cdh4.2.0"

我错过了什么吗?不想在 Artifact B 的 pom 中添加 cloudera repo。

4

1 回答 1

4

Maven 只从父 POM 继承存储库信息,而不是从依赖项。您可以创建第三个 POM C,它声明存储库并从中继承 A 和 B - 这将起作用。

不久前掉进了同一个坑……;)

于 2013-11-11T13:49:37.190 回答