一、什么是Maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。(摘自百度百科)
只看这个定义好像不能让我们理解它到底是用来干什么的。回顾一下,以前我们创建项目的时候,需要手动的导入各种各样的jar依赖,我们会先确定这个项目要用到哪些jar包,具体用哪个版本,然后去网上找到这些jar包,下载后再手动导入到项目中去。如果所需要的jar包较少还好,如果一个项目几十个jar包那么单单处理这个事情就会非常复杂。
那么这时候如果有个地方能把所有的各个版本的jar包都收集起来,我们用的时候直接根据名称版本去这个地方拿就行了,这样就会方便许多。这就是maven所做的事,Maven创建了一个中央仓库,它里面包含了几乎所有的各个版本的jar包,我们在使用的时候只需要列一个清单,告诉maven要用到哪些叫什么名字、什么版本的jar包,maven就会自动帮我们下载下来并导入到项目中。
那从maven下载的jar包是直接放到我们的项目中的吗,答案是否定的。我们还回到之前没用maven的时候,假如我们第一次创建了一个比如是ssm的项目,那么我们会收集到所需要的相关jar包,那么下次再用的时候就可以直接从这个项目中拿,然后再根据项目的需求,把多余的去掉,不够的找到添加进来。既然这样,那不如自己在本地建一个专门存放jar包的文件夹,把自己用过的jar包都放进来,随着写的项目越来越多,这个文件夹里的jar包也会越来越多,可能以后再建项目的时候直接来这个文件夹中找就够了,也不用从网上找了。
其实以上过程maven也帮我们做了,从maven中央仓库中下载过来的jar包会帮我们放到本地仓库中,这样我们使用jar包时,maven会先找我们的本地仓库,有的话直接导入,没有就先下到本地仓库,然后再导入到项目中。
当然,maven的优点并不只在于方便导入jar包,开头就说了它是一个项目管理工具,它的目标是简化构建过程、提供统一的构建系统、提供优质的项目信息、提供最佳实践开发指南,这里只说下jar包相关,其它就不展开讲了,有兴趣可以去maven官网看看,里面有详细的说明。
下面就来看看如何使用maven构建项目吧!
二、下载maven
官网下载地址http://maven.apache.org/download.cgi
点击apache-maven-3.6.3-bin.zip下载。注意,如果你在后面使用idea配置完maven后,出现一些无法解决的问题时,可以尝试降一下maven的版本,不使用最新版的maven
下载完成后解压的到任意文件夹,这里我解压到了C:\Program Files目录下,记住你的目录,无需安装,接下来配置环境变量。
右键此电脑-->属性-->高级系统设置-->环境变量
点击新建,变量名为MAVEN_HOME,变量值为maven的解压目录
双击Path,点击新建,输入%MAVEN_HOME%\bin,点击确定
打开cmd命令窗口,输入mvn -v,显示版本信息则说明环境变量配置成功
三、修改maven配置文件
打开maven目录中conf目录下的settings文件。
之前说过,maven会将从中央仓库下载的jar包放到本地仓库中,而这个本地仓库其实就是maven帮我们建立的一个文件夹,目录为C:\Users\你的用户名\.m2\repository,这个路径是可以修改的。当然,你也可以选择不修改。
打开settings文件后找到
我们知道maven是从中央仓库下载jar包的,但是这个中央仓库的服务器是在国外的,下载会非常慢,好在阿里云做了一个国内的镜像仓库,所以我们还要把仓库的地址修改为阿里云的地址。
aliyunmaven
*
阿里云公共仓库
https://maven.aliyun.com/repository/public
找到
四、在idea中配置maven
当然,我们一般使用maven都是在ide中使用的,其实idea已经默认自带的有maven,但是当然没有我们自己配置的用着好用。打开设置,找到构建、执行、部署——>构建工具——>Maven(英文界面下为Build, Execution, Deployment——>Build Tools——>Maven,想使用中文界面的可以去插件里面下载中文插件),如下图。默认的是idea自带的maven,点击主目录的箭头,会自动识别到我们安装的maven,选中后记得点击下面的用户设置文件和本地储存库右面的覆盖,将配置文件和目录修改为我们自己设置的。
五、使用idea新建一个Maven项目
点击新建项目,选择maven,选中从原型创建,选择maven的web项目模板
填写项目名称,选择项目目录,至于下面的构建坐标是什么意思,idea已经给出了提示,待会看pom文件的时候再解释
这里注意这些maven的设置,刚才我们已经在设置里面将默认的maven替换成了我们自己的,那这里应该已经是我们的maven选项,如果还是默认的,就手动修改一下。点击finish完成项目创建。
注意控制台的提示信息,看到是用阿里云的maven仓库下载说明我们的配置文件生效了,第一次创建会下载一些东西,如果半天还没构建完成那就要看是不是从国外的仓库下载的
看的下面信息说明项目构建成功,因为我这里不是第一次创建,所需要的东西已经下载好了,所以只用了5秒多
下面一起来看一下maven的项目结构,可以发现main文件夹下只有webapp文件夹,我们还需要自己建几个文件夹,来存放java文件和配置文件,不过直接在main底下右键新建是不生效的,还需要标记一下
按住ctrl+alt+shift+s或点击文件——>项目结构,选择模块,在main文件夹下建立java,resources,test三个文件夹
选中java文件夹,点击上方的标记为,源(也可以右键选择),表示该文件夹为存放java文件的文件夹,另外两个文件夹同理,标记完后右侧会出现提示,点击确定
此时可以看到我们的文件夹已经变了颜色,除了上面这种方式,也可以直接在main下新建文件夹,右键标记。
六、maven的项目结构及pom文件
项目目录说明如下图,可以看到好像和我们普通的web项目没有很大的区别,但是看着更加规范了,是的,maven的思想就是约定大于配置,它规定了项目的文件目录结构(不仅限于此),我们要使用它就必须遵守它的规定,一般情况下,它的默认规定会使我们的开发更加高效,springboot也是基于这种思想。
具体的项目目录规定见下图,更多内容请访问官网查看
上面我们已经搭好了一个基本的项目,那么接下来就看看maven项目的核心——pom.xml,开头说的很方便的导入jar包也是在这里配置的。以下内容参考官网的pom文件介绍,地址https://maven.apache.org/pom.html#What_is_the_POM,当然,我们起步阶段只需要了解其中一部分常用配置就行了。
4.0.0
org.example
mavenproject
1.0-SNAPSHOT
war
mavenproject Maven Webapp
http://www.example.com
UTF-8
1.8
1.8
5.1.10.RELEASE
com.alibaba
fastjson
1.1.23
compile
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-tx
${spring.version}
junit
junit
4.11
test
mavenproject
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
以上简单介绍了pom文件的使用,我们刚开始使用会使用它导包就行了,以后项目复杂之后会进行更多的配置。那现在我们已经知道了使用maven导包只需要添加一个
访问maven的仓库官网https://mvnrepository.com/,在搜索框里输入想要使用的jar包关键词即可,这里以spring为例,假如我们要使用spring context,点击它
选择需要的版本,注意右侧Usages,数字越大说明被使用的越多,尽量选择使用广泛的版本。这里只是演示,就点最新版本了
点进来就能看到maven的坐标了,将它复制到
有时候如果官网进不去的,我们也可以使用阿里云的maven仓库搜索,都是一样的
下载后的jar包是在External Libraries目录下的,可以在这里找到源码,而不是像普通项目那样直接放在了WEB-INF的lib目录下,它是运行的时候才会被打包到lib目录下的