Maven 2 “与”的区别是什么;“mvn部署”;本地回购协议和;mvn安装“;?

Maven 2 “与”的区别是什么;“mvn部署”;本地回购协议和;mvn安装“;?,maven-2,Maven 2,我的团队使用一个内部团队maven repo,它是使用Apache从开发服务器共享的。我们还在同一台机器上运行Continuum CI服务器。Continuum中的Maven构建以“安装”目标运行,该目标将最终工件直接复制到共享目录中 问题是,使用mvn install向共享repo添加文件与使用部署目标(mvn部署插件)有什么区别 在我看来,使用mvn deploy会带来额外的配置麻烦,但我在某个地方读到,由于与maven内部工作相关的某些原因,将文件安装到共享repo是一个坏主意 更新:我得

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

问题是,使用
mvn install
向共享repo添加文件与使用部署目标(mvn部署插件)有什么区别

在我看来,使用
mvn deploy
会带来额外的配置麻烦,但我在某个地方读到,由于与maven内部工作相关的某些原因,将文件安装到共享repo是一个坏主意

更新:我得到了
deploy
install
之间的功能差异;实际上,我更感兴趣的是maven repo中创建了哪些文件的底层细节。

,听起来这只是将包安装到哪个存储库中的不同之处:

  • 安装-将包安装到本地存储库中,作为本地其他项目中的依赖项使用
  • 部署—在集成或发布环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享
“安装”到CI服务器会将其安装到其本地存储库中,然后您作为用户共享该存储库,这可能有点混淆?

“matt b”是正确的,但具体来说,“安装”目标会将您构建的目标复制到您文件系统上的本地存储库中;对于当前不适用于整个组的项目中的小更改非常有用

“部署”目标会在您的工作完成时将其上载到您的共享存储库中,然后供其他项目需要它的人共享


在您的案例中,“安装”似乎用于简化部署的管理,因为CI的本地repo是共享repo。如果CI在另一个框中,它必须使用“部署”目标。

Ken,好问题。我应该在报告中更明确地说明差异。“安装”和“部署”在构建中有两个不同的用途。“安装”是指在本地存储库中安装工件的过程。“部署”是指将工件部署到远程存储库的过程

例如:

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

  • 当需要部署快照或发布时,我将运行“mvn部署”。运行此操作将尝试将文件部署到远程存储库或服务器。通常,我将部署到存储库管理器,例如


  • 确实,运行“部署”需要一些额外的配置,您必须在POM中提供一个distributionManagement部分

    @Tim那么
    mvn部署的优势到底是什么呢?它为最初需要的额外配置带来了什么好处?部署旨在将工件部署到远程服务器。它是一个与install完全不同的用例。