Maven 为什么';mvn安装';战争计划?

Maven 为什么';mvn安装';战争计划?,maven,build,maven-war-plugin,maven-install-plugin,maven-dependency,Maven,Build,Maven War Plugin,Maven Install Plugin,Maven Dependency,Mymaven项目包了一个war,它只会被部署,而且它本身并不依赖于其他项目(换句话说,它是最终可部署的) 问题: 是否有任何理由在该软件包上运行mvn install,除了mvn软件包之外,该软件包只将其放入localRepository 如果任何东西都不依赖于最终部署,为什么要安装它 对于最终的可部署工件,实际上可能没有理由调用安装阶段而不是包阶段:您想要构建.war文件,实际上不需要在本地存储库中安装它 但是,您可能希望习惯上总是运行集成测试(如果有的话)。查看包装后发生的这些阶段: p

My
maven
项目包了一个
war
,它只会被部署,而且它本身并不依赖于其他项目(换句话说,它是最终可部署的)

问题

  • 是否有任何理由在该软件包上运行
    mvn install
    ,除了
    mvn软件包
    之外,该软件包只将其放入
    localRepository
  • 如果任何东西都不依赖于最终部署,为什么要安装它

对于最终的可部署工件,实际上可能没有理由调用
安装
阶段而不是
阶段:您想要构建
.war
文件,实际上不需要在本地存储库中安装它

但是,您可能希望习惯上总是运行集成测试(如果有的话)。查看包装后发生的这些阶段:

package
将编译后的代码打包成可分发的格式,如JAR。
预集成测试
在执行集成测试之前执行所需的操作。这可能涉及设置所需环境等事项。
集成测试
处理软件包,必要时将其部署到可以运行集成测试的环境中。
集成后测试
执行集成测试后执行所需的操作。这可能包括清理环境。
验证
运行任何检查以验证包装是否有效并符合质量标准。
install
将包安装到本地存储库中,作为本地其他项目中的依赖项使用

因此,通过调用
install
,您将确保始终执行集成测试。事实上,短一点的调用会更有效

mvn clean verify
不太受欢迎,但在这些情况下更有效