我的maven项目打包 a war,它只被部署并且本身不依赖于其他项目(换句话说,它是最终可部署的)。
问题:
- 有什么理由
mvn install在那个包上运行,除了mvn package只把它放在localRepository? - 如果没有任何东西依赖于它,为什么还要安装最终部署?
我的maven项目打包 a 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
在这些情况下不太受欢迎但更有效。