Maven Maven简介 一:Maven是什么?为什么使用Maven? Maven是一个跨平台的项目管理工具。使用java语言开发(Maven 3.3+ require JDK 1.7 or above to execute)Maven主要有两大功能:依赖管理、项目构建依赖可以理解成jar包。项目构建包括以下环节:清理、编译、测试、报告、打包、部署项目构建的方式对比如下:eclipse ant maveneclipse:使用eclipse进行项目的构建,相对来说,步骤零散,不好操作。ant:是一个专门的项目构建工具,通过一些配置来完成项目构建,这些配置要明确的告诉ant,源码包在哪?目标class文件应存放在哪?资源文件应该在哪?maven:是一个项目管理工具,通过使用maven,可以对项目进行快速简单的构建,不需要告诉maven很多信息,但需要按照maven的规范去进行代码的开发,也就是说maven是有约束的。二:Maven下载(下载=>解压)2-1 进入maven官网下载页面:http://maven.apache.org/index.html 左侧有个download2-2 选择download 往下翻页看到Files,选择apache-maven-3.6.2-bin.zip下载三:Maven目录结构介绍及Maven环境变量配置(解压Maven)配置Maven环境变量(MAVEN_HOME和path)测试maven是否安装成功:在系统命令行中执行mvn –v(出现Maven的版本号代表配置成功)四:配置settings.xml本地仓库与中央仓库默认本地仓库存放位置是在系统用户目录下的.m2/repository中。因为仓库很大,最好不要放在C盘,重新指定存放目录。将安装包中conf目录下的settings.xml拷贝到.m2目录下,并修改上面标签。如:注意:默认.m2目录不存在,因为没有执行任何maven相关命令,在命令窗口中执行【mvn help:system】命令,则自动生成.m2目录<localRepository>D:/MavenForRepository</localRepository>JDK版本配置(默认maven的jdk编译版本不是自己安装的1.8版本。需要进行版本配置,修改settings.xml 如下)<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>mirror 镜像配置(镜像就相当于是中央仓库的一个副本,内容和中央仓库完全一样。目前有不少国内镜像,其中阿里云算是比较稳定的,同时也能保证下载速度)修改settings.xml如下: <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>五:Maven项目的生命周期在maven中存在"三套"生命周期,每一套生命周期相互独立,互不影响。在一套生命周期内,执行后面的命令则前面操作会自动执行。CleanLifeCycle:清理生命周期 cleanDefaultLifeCycle:默认生命周期 compile、test、package、install、deploySiteLifeCycle:站点生命周期 site(生成html文档描述项目的一些信息)六:Eclipse集成Maven(插件群文件有:839725710)6-1 安装m2e离线Maven插件(也可在线,推荐离线),将插件拷贝到eclipse的dropins目录下,重启Eclipse。6-2 设置maven的安装路径(maven解压路径)6-3 修改User Settings 指定本地仓库(settings.xml本地仓库修改后,必须先执行updata settings)七:maven项目直接的关系7-1 依赖[具有传递性]在工程之中需要依赖各种各样的jar包,也可能需要依赖其他的maven工程打包好的包。这个时候就需要在pom.xml中使用依赖关系进行配置。例子:让Maven02项目依赖与Maven01项目,在Maven02项目添加Maven01的坐标信息