【问题标题】:What's the difference between mvn:deploy and mvn:install commands?mvn:deploy 和 mvn:install 命令有什么区别?
【发布时间】:2011-11-23 18:31:34
【问题描述】:

我认为应该有一些不同,但谁能告诉我细节?

【问题讨论】:

  • this 可能就是您要找的。​​span>

标签: maven-2 maven maven-plugin


【解决方案1】:

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

deploy 阶段负责将工件安装到 已发布 存储库中。这通常适用于远程存储库,但也可以完美地成为暴露给外界的本地存储库。

作为所有 Maven 阶段,您可以对它们做任何您想做的事情。您可以随意调整插件阶段,但上述语义是传统语义,您应该坚持使用它以与其他插件目标的默认阶段保持一致。

【讨论】:

    【解决方案2】:

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

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

    请参阅documentation for the build lifecycle 了解更多信息。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 模块真的需要在部署前安装吗?
      • 我认为 Maven 的默认生命周期包含了这一点。如果你只部署它,​​那么应该部署什么?请参阅maven.apache.org/guides/introduction/… 的文档。有规定:那是因为如果你调用一个构建阶段,它不仅会执行那个构建阶段,还会执行被调用的构建阶段之前的每个构建阶段。
      • 那是两句话!
      【解决方案4】:

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

      【讨论】:

      • “所有已编译的包”是什么意思?
      • @Daniel, pom, jar, war, javadoc jar, source jar 之前构建阶段编译/组装的任何东西。
      猜你喜欢
      • 2023-01-26
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2018-07-24
      • 2019-02-13
      • 1970-01-01
      相关资源
      最近更新 更多