maven - 如果在父 pom 中配置了存储库,我的 pom 如何找到我的父 pom?

标签 maven nexus

我已将各个项目中的所有存储库配置重构为一个父 pom,该父 pom 是为了对存储库和分发管理等内容进行单点配置的特定目的而创建的。据我了解,这应该是最佳实践。将我的父 pom 部署到 Nexus 服务器,然后尝试运行我的子项目。他们找不到我的 parent pom 。 。 。这对我来说是有道理的,因为如果没有父 pom,他们不知道 Nexus repo 。 。 。看起来像是先有鸡还是先有蛋的问题?我是否遗漏了一些明显的东西?

最佳答案

确实,您的项目需要知道在哪里可以找到存储库来下载其依赖项。但在访问外部存储库之前,Maven 会检查您的本地存储库以查看它需要的 Artifact 是否在其中。你的本地仓库包含父pom吗?如果没有,您可以通过运行添加它

mvn install

在父 pom 上。该问题可能是由于绕过本地 pom 将父 pom 直接部署到 Nexus 引起的。您可以通过使用

进行部署来避免将来出现这种情况
mvn deploy

这将首先在本地安装 Artifact ,然后将其部署到外部存储库(在您的情况下为 Nexus)。更多详细信息请参见:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

如果您的父 pom 是由其他人构建和部署的,这将无济于事。您可以在项目的 pom 或本地 settings.xml 中指定存储库。一种常见的方法是期望所有开发人员在其本地 settings.xml 中包含一个存储库定义,该定义指向您的 Nexus 存储库,并将其用作所有其他存储库的镜像。然后,您可以在 Nexus 中配置您需要的每个外部存储库,并让它检索您需要的任何依赖项。我对 Nexus 不熟悉,但有关镜像的更多详细信息可以在这里找到:http://maven.apache.org/guides/mini/guide-mirror-settings.html

关于maven - 如果在父 pom 中配置了存储库,我的 pom 如何找到我的父 pom?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8749622/

相关文章:

java - 包含名称错误的 Maven 依赖项

java - Reserve-port-plugin 与新的 ServerSocket(0) 进行测试

maven - 有没有办法级联父 pom 的版本?

java - 有没有办法让 Maven 构建独立于网络连接?

python - 推送到 nexus,我得到 "Repository path must have another '/' after initial '/'"

eclipse - 如何确定 m2e 减慢 eclipse 构建速度的原因?

java - 编译时错误-使用Maven

java - 将 3rd 方依赖项部署到 Maven 存储库的简单方法

maven - Nexus 无法解决快照依赖性,但我可以在 nexus/content/groups/public 下找到它

java - 如何从 Nexus OSS 连接到 HTTPS 存储库?