当前位置:  开发笔记 > 运维 > 正文

"mvn deploy"与本地仓库和"mvn install"有什么区别?

如何解决《"mvndeploy"与本地仓库和"mvninstall"有什么区别?》经验,为你挑选了2个好方法。

我的团队使用内部团队maven repo,它使用Apache从开发服务器共享.我们还在同一台机器上运行Continuum CI服务器.Continuum中的Maven构建以"安装"目标运行,该目标将最终工件直接复制到共享目录中.

问题是,使用mvn install和使用部署目标(mvn-deploy plugin)将文件添加到共享仓库有什么区别?

在我看来,使用mvn deploy会产生额外的配置麻烦,但我已经在某处读过,将文件安装到共享仓库中由于某些原因与maven的内部工作相关是一个坏主意.

更新:我得到了部署和安装之间的功能差异; 我实际上对maven repo中创建的文件的低级细节更感兴趣.



1> Tim O'Brien..:

肯,好问题.我应该在The Definitive Guide中更明确地说明差异."安装"和"部署"在构建中提供两种不同的用途."安装"是指在本地存储库中安装工件的过程."deploy"是指将工件部署到远程存储库的过程.

例:

    当我在我的机器上运行一个大的多模块项目时,我通常会运行"mvn install".这将在我的本地存储库中安装所有生成的二进制软件工件(通常是JAR).然后,当我在构建中构建单个模块时,Maven将从本地存储库中检索依赖项.

    在部署快照或版本时,我将运行"mvn deploy".运行此操作将尝试将文件部署到远程存储库或服务器.通常我将部署到Nexus等存储库管理器

确实,运行"部署"需要一些额外的配置,您将不得不在POM中提供distributionManagement部分.


Deploy旨在将工件部署到远程服务器.这是一个完全不同的安装用例.

2> matt b..:

从Maven文档来看,听起来只是将软件包安装到哪个存储库中的区别:

install - 将软件包安装到本地存储库中,以便在本地用作其他项目的依赖项

deploy - 在集成或发布环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享.

也许有一些混乱,CI服务器的"安装"将它安装到它的本地存储库,然后你作为用户共享?

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有