我已经将我的各种项目中的所有存储库配置重构为我创建的父pom,其目的是为repo和分发管理等内容提供单点配置.据我所知,这应该是最佳实践.在部署我的父pom到nexus服务器,然后尝试运行我的子项目.他们找不到我的父母pom...这对我来说是有道理的,因为他们不知道关于nexus回购的父母pom...看起来像鸡蛋和鸡蛋的东西?我错过了一些明显的东西吗
Con*_*nan 11
确实,您的项目需要知道在何处找到存储库以下载其依赖项.但在进入外部存储库之前,Maven将检查您的本地存储库以查看它所需的工件是否在那里.您的本地存储库是否包含父pom?如果没有,您可以通过运行添加它
mvn install
Run Code Online (Sandbox Code Playgroud)
在父母pom.问题可能是由于将父pom直接部署到Nexus,绕过了本地pom.您可以通过部署使用来避免此问题
mvn deploy
Run Code Online (Sandbox Code Playgroud)
这将首先在本地安装工件,然后将其部署到外部存储库(在您的情况下为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
小智 7
您必须维护每个子项(maven 模块)的存储库定义,这是构建过程中的主要最佳实践:“使构建可移植”。
任何开发人员/系统都应该能够构建任何模块,而无需依赖于父模块或其他模块的源代码,只需使用存储库引用。
| 归档时间: |
|
| 查看次数: |
15345 次 |
| 最近记录: |