maven快速入门第三讲——maven工程的标准目录结构、maven的常用命令以及maven的生命周期

maven工程的标准目录结构

一个web工程都会有其标准目录结构,更何况是一个maven工程呢!那啥是maven工程呢?使用maven创建的工程我们就称它为maven工程。maven工程具有一定的目录规范,如下图所示。
在这里插入图片描述

maven的常用命令

假设在这里我们已经拥有了一个maven工程,例如helloworld。有同学不仅想问了,这个maven工程给咋整出来啊?既然你都知道了maven工程的标准目录结构了,难道你不会自己手动建个maven工程啊?非得把饭喂你嘴边啊!算了,我还是提供这个maven工程的网盘下载地址吧!

maven工程运行演示

同学们可以通过以上链接下载下来那个maven工程,然后通过使用maven提供的命令来运行maven工程,体会maven构建工程的优点。首先,打开命令行窗口,就是那个黑黑的窗口,然后进入maven工程目录(当前目录有pom.xml文件)下,接着运行mvn tomcat7:run命令。
在这里插入图片描述
大家初次运行以上maven命令时,可能不是像上图所展示的那样,而是有可能像下面这样。
在这里插入图片描述
运行了以上maven命令之后,出现了好多的Downloading ...这样的提示信息。为啥会出现这些提示信息呢?你还记得maven工程在查找jar包时,遵循的是什么样的顺序吗?maven工程运行时先从本地仓库找jar包,若本地仓库没有则再从中央仓库找,因此上边提示的Downloading ...信息表示在从中央仓库下载jar包。你现在知道为什么我运行mvn tomcat7:run命令时,没有Downloading ...这样的提示信息了吧!因为本地仓库中已经有了相应的jar包(也是从中央仓库下载下来的)了。

根据上边运行mvn tomcat7:run命令之后的提示信息,我们可以打开Google Chrome浏览器,并在浏览器地址栏中输入http://localhost:8080/helloworld这样的url地址进行访问,效果将如下图所示。
在这里插入图片描述
以上就是maven项目的一键构建,即使用一个mvn tomcat7:run命令就能把项目运行起来。

mvn compile

compile是maven工程的编译命令,作用是将src/main/java下的java源文件编译为class文件并输出到target下的classes目录下。

下面我就来演示一下该编译命令。首先进入maven工程目录(当前目录有pom.xml文件)下,然后运行一下mvn compile命令。
在这里插入图片描述
编译成功之后,可以看到helloworld项目的根目录下多了一个target文件夹,这个文件夹就是编译成功之后maven帮我们生成的文件夹,如下图所示。
在这里插入图片描述
打开target文件夹,可以看到里面有一个classes文件夹,classes文件夹中存放的就是maven帮我们编译好的Java类,如下图所示。
在这里插入图片描述
这就是使用maven自动编译项目的过程。

mvn clean

clean是maven工程的清理命令,执行该命令会删除target目录及其目录下的所有内容。
在这里插入图片描述

mvn test

test是maven工程的测试命令,运行该命令会执行src/test/java下的单元测试类。
在这里插入图片描述
测试成功之后,可以看到helloworld项目的根目录下多了一个target文件夹,这个文件夹就是测试成功之后maven帮我们生成的文件夹,如下图所示。
在这里插入图片描述
打开target文件夹,可以看到里面有一个classes和test-classes文件夹,如下图所示。
在这里插入图片描述
也就是说,如果执行了mvn test命令来测试项目,那么maven会先帮我们编译项目,然后再运行src/test/java下的单元测试类。

mvn package

package是maven工程的打包命令,对于普通的Java工程来说,执行该命令,会打成jar包,对于web工程来说,执行该命令,会打成war包。
在这里插入图片描述
打包成功之后,可以看到helloworld项目的根目录下的target文件夹中多了一个helloworld-0.0.1-SNAPSHOT.war,这个helloworld-0.0.1-SNAPSHOT.war就是打包成功之后maven帮我们生成的war文件,如下图所示。
在这里插入图片描述

mvn install

install是maven工程的安装命令,执行该命令,会将maven工程打成jar包或war包并发布到本地仓库中。
在这里插入图片描述
安装成功之后,首先会在helloworld项目的根目录下生成target文件夹,打开target文件夹,可以看到里面会有helloworld-0.0.1-SNAPSHOT.war,这个helloworld-0.0.1-SNAPSHOT.war就是安装成功之后maven帮我们生成的war文件,如下图所示。
在这里插入图片描述
除此之外,在我们的本地仓库中也会有一个helloworld-0.0.1-SNAPSHOT.war,所以maven安装项目的过程,实际上就是把项目进行了【清理】→【编译】→【测试】→【打包】,再把打包好的war包放到我们指定的存放jar包的maven仓库中,如下图所示。
在这里插入图片描述
结论:使用了mvn install命令,就把maven构建项目的【清理】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包或者war包发布到本地的maven仓库中,所以maven最常用的命令还是mvn install,这个命令能够做的事情最多。

组合使用maven的命令

maven的编译、清理、测试、打包以及部署这几个命令可以同时组合起来使用,常用的命令组合有mvn clean compile,即先清理再编译。
在这里插入图片描述
还有的就是mvn clean testmvn clean packagemvn clean install这些组合命令也都比较常用。