Pas*_*ent 23 lifecycle maven-2
注意:这个问题最初由Lahiru Gunathilake发布,作为另一个问题的答案.为了清楚起见,我将它作为一个单独的问题移到这里.
当我们进行发布时,我们只需构建本地计算机并执行QA,然后将其托管到存储库中.如果我们运行mvn deploy它会创建新的工件,这会导致在存储库和二进制分发中具有不同的工件,因为我们正在从本地存储库创建二进制分发.但如果有人获得源代码并进行构建,他们将获得另一个.但如果mvn deploy不构建但只是部署它没关系.
Pas*_*ent 28
构建生命周期由阶段组成
这些构建生命周期中的每一个都由不同的构建阶段列表定义,其中构建阶段表示生命周期中的阶段.
例如,默认生命周期具有以下构建阶段(有关构建阶段的完整列表,请参阅生命周期参考):
validate- 验证项目是否正确,并提供所有必要信息compile- 编译项目的源代码test- 使用合适的单元测试框架测试编译的源代码.这些测试不应要求打包或部署代码package- 获取已编译的代码并将其打包为可分发的格式,例如JAR.integration-test- 如有必要,将程序包处理并部署到可以运行集成测试的环境中verify- 运行任何检查以验证包是否有效并符合质量标准install- 将软件包安装到本地存储库中,以便在本地用作其他项目的依赖项deploy- 在集成或发布环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享.这些构建阶段(以及此处未显示的其他构建阶段)按顺序执行以完成默认生命周期.鉴于上面的构建阶段,这意味着当使用默认生命周期时,Maven将首先验证项目,然后将尝试编译源代码,针对测试运行那些,打包二进制文件(例如jar),对此运行集成测试包,验证包,将验证的包安装到本地存储库,然后在指定的环境中部署已安装的包.
要做所有这些,您只需要调用要执行的最后一个构建阶段,在这种情况下,部署:
Run Code Online (Sandbox Code Playgroud)mvn deploy这是因为如果您调用构建阶段,它不仅会执行构建阶段,还会执行调用构建阶段之前的每个构建阶段.
所以,答案是肯定的, mvn deploy将执行install并构建项目工件.但如果你不改变任何东西,这将产生完全相同的神器.
| 归档时间: |
|
| 查看次数: |
7911 次 |
| 最近记录: |