mvn:deploy和mvn:install命令有什么区别?

时间:2011-09-23 15:04:36

标签: maven-2 maven maven-plugin

我认为应该有一些不同,但是有人可以告诉我细节吗?

4 个答案:

答案 0 :(得分:23)

mvn:install将打包的Maven模块复制到本地存储库(默认情况下,在~/.m2/repository中),以供其他本地Maven构建访问。

mvn:deploy将打包的Maven模块上传到另一个(通常是远程的)存储库,以供其他(不一定是本地的)Maven构建访问。

有关详细信息,请参阅documentation for the build lifecycle

答案 1 :(得分:2)

install阶段负责将工件安装到本地缓存存储库中。这基本上适用于Maven存储库,但一个着名的例子也是 maven-bundle-plugin 支持的OSGi Bundle存储库。

deploy阶段负责将工件安装到已发布的存储库中。这通常适用于远程存储库,但可能完全是暴露给外部世界的本地存储库。

正如所有Maven阶段一样,你可以随心所欲地做任何事情。您可以根据需要随机播放插件阶段,但上述语义是常规语义,您应该坚持使用它以便与其他插件的默认阶段保持一致。目标

答案 2 :(得分:1)

mvn:deploy执行部署到远程存储库/环境,mvn:install将所有已编译的软件包安装到本地存储库,使其可用于在本地计算机上执行的其他构建。

答案 3 :(得分:0)

用一句话:mvn:install在您的本地Maven存储库中编译和安装您的组件,以便在本地使用和开发的其他组件依赖它时可以使用它。 mvn:deploy将您(以前安装的)组件部署到远程存储库。