概述
普通项目编码、编译、测试、打包、部署有两种方式:一种是在集成开发环境中直接实施,一种是使用命令(windows命令行或linux命令)进行操作。
maven项目也不例外,也可以通过命令行或者eclipse等开发环境直接进行生命周期管理。
maven项目生命周期规范
maven项目制定了统一的项目生命周期规范,包括:清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成。
我们来说点平时用得到的命令到底是干嘛的,在说之前首先得了解下mvn命令如何执行
mvn命令执行方法
首先得把maven配到环境变量Path中
打开CMD命令行
使用cd命令将当前目录切换到Maven工程根目录下
运行命令
如果上面命令行的内容不熟悉,先还是强烈建议了解下windows命令行的。
mvn clean
清理项目,相当于删除已经生成的东西,没啥大用
mvn test
编译项目,并运行测试代码,如果编译项目失败就提示失败,如果编译成功运行测试(例如junit单元测试),并给出测试结果。
这个还是比较常用的,强烈建议maven构建的项目测试之类的各种动作都用maven来做
mvn package & mvn clean package & mvn clean package -Dmaven.test.skip=true
mvn package 打包。一般打成jar或war包。如果加上-Dmaven.test.skip=true表示跳过测试。(不同的项目具体打包之前需要的pom.xml配置还有所不同,包括需要的依赖和插件,此处不再具体论证,后续收集下各类项目打包方式集中说明下)。
OK,还有一个需要注意的问题:建议直接写mvn clean install,这样先清理再安装,意义很简单:有时候你发现某个目录下软件出问题,可以删除重新安装。你这个项目可能因为种种原因之前生成有问题,不如直接清理了重新生成。
mvn install & mvn clean install
这个是重点,很多童鞋不使用该命令,觉得没用,直接测试通过就可以打包部署了,不知道install安装是干啥的。
实际上install安装的意义是:将打包的组件安装到本地依赖仓库中,这样其他项目就可以调用本项目了。
比如咱们开发了项目 A、项目B。
项目A的坐标:
<groupId>com.panda</groupId>
<artifactId>projecta</artifactId>
<version>0.0.1-SNAPSHOT</version>
项目B在pom.xml引用项目 A,此时项目A需要执行过mvn install安装,项目B才能再本地仓库找已安装的A。
<dependency>
<groupId>com.panda</groupId>
<artifactId>projecta</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
mvn deploy & mvn clean deploy
这个就厉害了,不但打包,还将打包的包部署到本地和远程maven私服仓库,这个用的不多,此处不讨论。
eclipse中执行maven生命周期管理
右键项目-Run as,里面就有maven test、maven clean、maven install,你懂得。