2010-08-04 119 views
24

我对我们的ci服务器的设置有些疑问。 用于构建应用程序的maven命令在竹中被配置为“mvn install deploy”Maven的安装和部署

由于我的理解,这将调用所有阶段长达“安装”,然后再调用所有阶段长达“部署”,这意味着,当我可以在我们的日志中看到,该应用程序构建两次(两次编译,两次测试)等。这也意味着应用程序需要几乎两倍的时间来构建。

只需要“mvn deploy”即可正确构建应用程序。

我的理解/观察是否正确?

+1

您的理解是正确的 – 2010-08-04 16:22:59

+1

单独的部署是否确保只有在部署任何工件之前才能成功安装(编译)整个项目(和模块)才能实现部署? – 2013-07-17 02:30:50

回答

31

是的,你所要做的就是看执行生命周期。

  • 验证 - 验证项目是正确的,所有必要的信息 可用
  • 编译 - 编译项目
  • 测试的源代码 - 使用适合的单元测试 测试编译的源代码框架。这些测试不应该 需要打包代码或部署
  • 打包 - 获取已编译的代码并将其打包为可分发的 格式(例如JAR)。
  • 集成测试 - 过程,如果有必要包部署到 集成测试 可以运行
  • 验证的环境 - 运行任何检查,验证包是有效的,符合质量 标准
  • 安装 - 安装包到本地存储库,用于在其他项目 依赖本地
  • 部署使用 - 在整合或者发布环境,复制最终 包到远程仓库中 共享与其他开发者和 项目。

在这里你可以看到安装在部署之前就已经发生了。知道在运行部署时重要的是,maven将运行所有其他阶段,然后说出目标。因此,运行安装然后部署将运行两次,然后单个部署。