我的maven
项目打包了一个war
,它只被部署,它本身不依赖于其他项目(换句话说,是最终可部署的)。
:
- 是否有任何理由在该包上运行
mvn install
,除了mvn package
只将其放在localRepository
中? - 如果什么都不依赖于它,为什么要安装最终可部署的?
对于最终可部署的工件,可能没有理由调用install
阶段而不是package
阶段:您想要构建.war
文件,并且您确实不需要在本地存储库中安装它。
然而,如果有的话,您可能希望将始终运行集成测试作为一种习惯。看看默认的Maven生命周期,这些阶段发生在打包后的:
package
将编译后的代码打包成可分发的格式,比如JAR。pre-integration-test
执行集成测试执行前所需的操作。这可能涉及诸如设置所需环境之类的事情。integration-test
处理并在必要时将包部署到可以运行集成测试的环境中。post-integration-test
执行集成测试执行后所需的操作。这可能包括清理环境。verify
运行任何检查,以验证包是有效的,符合质量标准。install
将包安装到本地存储库中,以便在本地其他项目中作为依赖项使用。
因此,通过调用install
,您将确保始终执行集成测试。更短的调用应该是
mvn clean verify
不太流行,但在这些情况下更有效