为什么安装'战争项目?

时间:2016-08-25 16:04:09

标签: maven build maven-war-plugin maven-install-plugin maven-dependency

我的maven项目打包war,它只会被部署,而且本身不是对其他项目的依赖(换句话说,它是最终可部署的)。

问题

  • 是否有理由在该软件包上运行mvn install,除了mvn package之外,只有localRepository
  • 如果没有任何依赖它,为什么要安装最终的可部署?

1 个答案:

答案 0 :(得分:2)

对于最终可部署的工件确实没有理由调用install阶段而不是package阶段:您想要构建.war文件并且您没有'确实需要在本地存储库中安装它。

但是,您可能希望始终运行集成测试,如果有的话。看看default Maven lifecycle这些阶段发生 打包后

  

package获取已编译的代码并将其打包成可分发的格式,例如JAR   pre-integration-test执行集成测试之前所需的操作。这可能涉及诸如建立所需环境之类的事情   如果需要,integration-test处理并将程序包部署到可以运行集成测试的环境中   post-integration-test执行集成测试后所需的操作。这可能包括清理环境   verify运行任何检查以验证包裹是否有效并符合质量标准   install将软件包安装到本地存储库中,以便在本地作为其他项目的依赖项使用。

因此,通过调用install,您将确保始终执行集成测试。实际上,更短的调用将是

mvn clean verify

在这些情况下不太受欢迎但更有效。