一.Maven基础篇

1.Maven介绍

(1)什么是Maven

Maven是一个基于项目项目-对象-模型(Project Object Model)的项目管理工具。它包括两大核心:依赖管理----管理项目所依赖的jar包,和项目构建----项目编码完成后,对项目进行相应的操作,包括编译,打包,部署,测试等。

(2)为什么要学习使用Maven

原来通过Eclipse或IDEA或其它IDE工具构建java项目或者javaweb项目时,需要手动的在项目的lib目录下保存项目所需要使用的jar包。这种方式管理jar包的缺点很明显:

1.jar包的冗余,重复复制

2.jar包的依赖管理繁琐,容易出错,调试不方便

而Maven的出现,很好的解决了传统项目上的jar包管理中的一些不友好的问题,包括但不仅限于上面列出的问题。

2.Maven的安装配置

Maven官网:https://maven.apache.org/

1.去官网下载Maven的压缩包:

maven 集成 JavaCV maven jvm_maven 集成 JavaCV

2.解压出来:

maven 集成 JavaCV maven jvm_jar包_02

可以修改一下解压出来的文件夹名字,尽量解压到非中文名称的路径当中。

maven 集成 JavaCV maven jvm_maven 集成 JavaCV_03

文件夹中的目录结构:

maven 集成 JavaCV maven jvm_java_04

Maven本身是一个java工程,所以它也有它所依赖的jar包。

3.测试安装是否成功:

Maven本身是一个java工程,所以也是需要有JDK环境的依赖的,所以必须先在电脑上下载JDK安装并配置JDK的环境变量后才可以使用Maven。

JDK环境配置好的截图:

maven 集成 JavaCV maven jvm_java_05

JDK环境配置好后,先来看看Maven是否安装成功,在Maven安装目录下的bin目录下输出cmd命令:

maven 集成 JavaCV maven jvm_jar包_06

maven 集成 JavaCV maven jvm_jar包_07

在弹出的cmd窗口中输入:mvn -v,查看输出信息,若有显式出Maven的一系列信息,则表示Maven安装成功。但是现在命令是在Maven的安装目录bin下可以使用Maven,在其它目录下是不能使用的。如果想要在当前系统下的任何目录下都可以使用到Maven,则需要配置Maven的环境变量。

4.环境变量配置:

maven 集成 JavaCV maven jvm_jar包_08

变量名:MAVEN_HOME

变量值:E:\JavaTools\maven\apache-maven

这个变量值是你下载的zip包解压到的文件夹的路径,如下图所示:

maven 集成 JavaCV maven jvm_jar包_09

配置好点确定,然后再在path系统变量上新建一个属性:

maven 集成 JavaCV maven jvm_java_10

maven 集成 JavaCV maven jvm_web项目_11

这里面的值为上面新建的MAVEN_HOME路径下的bin文件夹的路径,可以直接为:E:\JavaTools\maven\apache-maven\bin,也可以使用MAVEN_HOME的相对路径,即写入:%MAVEN_HOME\bin%   也行。但一般windows10系统有些情况下貌似不支持相对路径的写法,所以我一般使用的绝对路径。配置完成后一路点击确定就行。 

配置成功后,重新打开cmd窗口,去验证一下:

maven 集成 JavaCV maven jvm_web项目_12

此时cmd的默认路径是C:\Users\Dell,并不是Maven的安装路径,在这里输入mvn -v,也出现了上面的Maven安装的各项信息,说明刚才配置的Maven环境变量配置成功,此时Maven可以在当前系统下的任何路径去使用了。

如果cmd提示mvn -v不是内部命令或外部命令的情况,请检查环境变量的配置有没有问题。

自此,Maven的安装就成功了。

3.myEclipse集成Maven

myEclipse集成Maven的配置及使用在网上都有,这里看一些别人的集成引导就行

传送门:

 

4.intellij IDEA集成Maven

intellij IDEA是使用度很高的一个开发工具,所以也需要知道它是如何集成Maven的。

集成步骤:

maven 集成 JavaCV maven jvm_java_13

idea在安装时有自带一个Maven的,这里选择使用我们自己下载并配置的Maven

maven 集成 JavaCV maven jvm_web项目_14

点击确定即可。这样一来,idea中用的就是我们自定义的一个Maven了。

5.Maven仓库

当我们使用Maven来创建java项目或javaweb项目时,那么Maven就会帮我们管理jar包了,也就是说Maven就相当于一个仓库,这个仓库里保存的是我们这个项目所要用到的jar包,那么Maven仓库有几种类型呢?

maven 集成 JavaCV maven jvm_maven 集成 JavaCV_15

Maven中的仓库分为图中的几种,然后它们之间的关系又是怎么样的呢?也就是说Maven在查找jar包时的顺序是怎么样的?

maven 集成 JavaCV maven jvm_web项目_16

所以,当我们的项目需要使用一个jar包时,Maven就会执行上面的操作流程。那么本地仓库在哪里呢?先来看一下我们自定义的Maven中的settings.xml文件:

maven 集成 JavaCV maven jvm_web项目_17

这里,localRepository就是本地仓库的意思。但是此时这个标签被注释掉了,它上面还有一句话,说本地仓库默认的是当前操作系统用户路径下的.m2/repository文件夹里面就是存放的jar包,也就是上面我们几次Maven时的最后一个参数:

maven 集成 JavaCV maven jvm_java_18

上面集成的时候并没有管这个参数,这个参数就是指本地仓库的路径。由于settings.xml中没有自行定义,那么使用的路径就是

maven 集成 JavaCV maven jvm_java_19

我们改一下这个路径,当然也可以不改,没有任何关系。我们设置成自己定义的一个。

maven 集成 JavaCV maven jvm_jar包_20

在Maven安装路径下新建一个空的文件夹localrepository来作为本地仓库使用。然后在settings.xml中配置这上个本地路径。

maven 集成 JavaCV maven jvm_maven 集成 JavaCV_21

这样就定义好了本地仓库。

然后把idea中最后一项的配置更改为这个配置路径就行了。

maven 集成 JavaCV maven jvm_web项目_22

然后来测试一下,尝试创建一个java项目和一个web项目,分别来测试一下:

1.创建java项目

maven 集成 JavaCV maven jvm_jar包_23

maven 集成 JavaCV maven jvm_java_24

maven 集成 JavaCV maven jvm_jar包_25

选择好后点击完成

maven 集成 JavaCV maven jvm_java_26

maven 集成 JavaCV maven jvm_jar包_27

可以看到,在下载完依赖并加载完成后,这个javaprojiect已经构建完成了。我们自定义的本地仓库中也保存了下载下来的jar包信息。

maven 集成 JavaCV maven jvm_maven 集成 JavaCV_28

maven 集成 JavaCV maven jvm_java_29

接下来,在右侧的maven窗口里,可以看到这个项目的执行以及插件信息

maven 集成 JavaCV maven jvm_web项目_30

 

此时我们点击install设置,构建一下项目:

maven 集成 JavaCV maven jvm_web项目_31

构建完成,说明项目没问题了,再来测试一下例子:

maven 集成 JavaCV maven jvm_jar包_32

跑一下看看:

maven 集成 JavaCV maven jvm_jar包_33

没有什么问题了。

2.创建javaweb项目

同样使用脚手架创建javaweb项目

maven 集成 JavaCV maven jvm_java_34

maven 集成 JavaCV maven jvm_java_35

maven 集成 JavaCV maven jvm_web项目_36

配置完成后等Maven下载和配置即可,配置完成后看一看web项目的结构:

maven 集成 JavaCV maven jvm_maven 集成 JavaCV_37

 

多出了一个webapp结构,里面有web.xml和index.jsp,说明web项目成功构建了。但是通过这个脚手架创建的web项目中对应的src/main/java,src/main/resource和src/test/...等目录有缺失。这时需要我们手动的来创建。

maven 集成 JavaCV maven jvm_java_38

maven 集成 JavaCV maven jvm_web项目_39

这时就出现了java和resource2个选项,直接选择即可。

maven 集成 JavaCV maven jvm_jar包_40

选择完以后,就是正常的web项目的结构了。

既然是web项目,需要给它启动一下试试,这时需要添加web容器插件了。有两种方式:

maven 集成 JavaCV maven jvm_jar包_41

自己手动配置tomcat容器。需要先去下载tomcat容器,然后集成到idea中,再去配置等等,很麻烦。因为我们是Maven项目,所以先不使用这种方式。用第二种方式:

在pom.xml中添加tomcat的依赖:

maven 集成 JavaCV maven jvm_web项目_42

注意要添加build标签里面,而且不能出现在<pluginManagement></pluginManagement>标签里面。原因后面我会去记录和说明。因为tomcat是一个插件,需要使用<plugins></plugins>标签。编辑好了以后,在右侧的maven里面中的插件里,就会有tomcat7这个插件了。

maven 集成 JavaCV maven jvm_maven 集成 JavaCV_43

 

点击运行看看:

maven 集成 JavaCV maven jvm_java_44

启动完成了,端口8082,在浏览器访问一下:

maven 集成 JavaCV maven jvm_maven 集成 JavaCV_45

maven 集成 JavaCV maven jvm_java_46

访问也是正常的。那web项目也创建成功了。