【发布时间】:2011-03-28 17:28:38
【问题描述】:
我在一个包含许多模块的项目中使用 Maven。当我们发布时,我们将模块部署到我们自己的 Maven 存储库。项目模块继承自父项目,父项目定义了常用属性,例如要使用的报告工具、SCM 位置、存储库等。
./pom.xml
<project>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0</version
<repositories>
<repository>
<url>repo.example.com</url>
...
</repository>
</repositories>
...
</project>
./module/pom.xml
<project>
<groupId>com.example</groupId>
<artifactId>module</artifactId>
<parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
</parent>
...
</project>
事实证明,这种设置存在问题:当有人加入项目并尝试构建模块时,它会失败。这是因为parent 在其本地 Maven 存储库中不可用,并且无法获取,因为 repo.example.com 仅在父 POM 中定义。
有没有明显的方法来解决这个问题,在每个模块的 POM 中定义<repositories/>?
【问题讨论】:
标签: inheritance maven-2 dependency-management circular-dependency