为啥要“mvn install”战争项目?
Posted
技术标签:
【中文标题】为啥要“mvn install”战争项目?【英文标题】:Why 'mvn install' war projects?为什么要“mvn install”战争项目? 【发布时间】:2017-01-02 03:53:34 【问题描述】:我的maven
项目打包了一个war
,它只会被部署,它本身并不依赖于其他项目(换句话说,它是最终可部署的)。
问题:
有什么理由在那个包上运行mvn install
,除了mvn package
之外,它只把它放在localRepository
中?
如果没有任何依赖项,为什么还要安装最终部署?
【问题讨论】:
【参考方案1】:对于最终的可部署工件,确实可能没有理由调用install
阶段而不是package
阶段:您想要构建.war
文件并且您不需要在本地安装它确实是存储库。
但是,您可能希望始终运行集成测试(如果有)作为一种习惯。查看default Maven lifecycle,这些阶段发生在在包装之后:
package
获取编译后的代码并将其打包成可分发的格式,例如 JAR。pre-integration-test
在执行集成测试之前执行所需的操作。这可能涉及诸如设置所需环境之类的事情。integration-test
处理并在必要时将包部署到可以运行集成测试的环境中。post-integration-test
在执行集成测试后执行所需的操作.这可能包括清理环境。verify
运行任何检查以验证包是否有效并符合质量标准。install
将包安装到本地存储库中,以用作其他项目的依赖项本地。
因此,通过调用install
,您将确保始终执行集成测试。实际上,更短的调用将是
mvn clean verify
在这些情况下不太受欢迎但更有效。
【讨论】:
以上是关于为啥要“mvn install”战争项目?的主要内容,如果未能解决你的问题,请参考以下文章
新建了一个maven项目,需要依赖其他项目,当mvn install的时候就出错
gradle 中 mvn update 和 mvn install 的等价物
maven添加本地包命令mvn install:install-file