简介
Maven
是Apache
软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管理
构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程
传统构建:
1.在eclipse中创建一个java web工程
2.在工程中编写源代码及配置文件等
3.对源代码进行编译,java文件编译成class文件
4.执行Junit单元测试
5.将工程打成war包部署至tomcat运行
Maven构建:
1.清理:删除以前的编译结果,为重新编译做好准备。
2.编译:将 Java 源程序编译为字节码文件。
3.测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
4.报告:在每一次测试后以标准的格式记录和展示测试结果。
5.打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war 包。
6.安装:在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。
7.部署:将打包的结果部署到远程仓库或将 war 包部署到服务器上运行。
Maven
将项目构建的过程进行标准化,每个阶段使用一个命令完成
清理阶段对应maven的命令是clean,清理输出的class文件
编译阶段对应maven的命令是compile,将java代码编译成class文件。
打包阶段对应maven的命令是package,java工程可以打成jar包,web工程可以打成war包
运行一个maven工程(web工程)需要一个命令:tomat:run
什么是依赖管理呢?
一个java项目可能要使用一些第三方的jar包才可以运行,那么这个java项目依赖了这些第三方的jar包。
依赖管理
就是对项目所有依赖的jar包进行规范化管理。
传统项目的依赖管理
传统的项目工程要管理所依赖的jar包完全靠人工进行,我们需要从网上下载jar包添加到项目工程下的WEB-INF/lib
目录下。手工拷贝jar包添加到工程中可能会产生一些问题:
1.没有对jar包的版本统一管理,容易导致版本冲突
2.从网上找jar包非常不方便,有些jar可能找不到
3.jar包添加到工程中导致工程过大
Maven项目的依赖管理
Maven项目管理所依赖的jar包不需要在手动的往项目工程WEB-INF/lib
目录下添加jar包,只需要在pom.xml(Maven工程的配置文件)添加jar包的坐标,自动从Maven仓库中下载jar包,使用Maven依赖管理添加jar的好处:
1.通过pom.xml文件对jar包的版本进行统一管理,避免了版本冲突问题
2.Maven团队维护了一个非常全面的Maven仓库,里边包括了当前使用的jar包,Maven工程可以自动从Maven仓库下载jar包
通过进行对比我们得出使用Maven的好处:
1.一步构建:maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程
2.依赖管理:Maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错
3.跨平台:可在window、linux上使用
4.Maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本
使用
一、下载:
解压:
对下载的压缩包进行解压,解压的目录不要有空格和中文
目录结构bin目录:该目录包含了Mavne运行的脚本,其中 mvn.bat (表示以run方式运行项目)、 mvnDebug.bat(表示以debug方式运行项目)
boot目录:Maven运行需要类加载器
conf目录:该目录包含了一个非常重要的文件settings.xml,Maven的核心配置文件
lib目录:该目录包含了所有Maven运行时需要的Java类库
二、配置环境变量
前提:需要java环境,需要配置JAVA_HOME
1.配置 MAVEN_HOME
变量名为MAVEN_HOME或M2_HOME,变量值为你Maven解压放入的位置
2.将 %MAVEN_HOME%/bin 加入环境变量 path
3.在控制台输入mvn -v命令检查Maven是否安装成功,看到Maven的版本为3.5.0安装成功。
三、配置本地仓库
Maven的工作需要从仓库下载一些jar包,本地的项目都会通过Maven软件从远程仓库(可理解为互联网上的仓库)下载jar包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。
本地仓库 :
用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找 默认本地仓库位置在 ${user.dir}/.m2/repository,${user.dir}表示windows
用户目录。
远程仓库:
如果本地需要插件或者jar
包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。
中央仓库 :
在Maven
软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven
团队自己维护,里面存储了非常全的jar
包,它包含了世界上大部分流行的开源项目构件。
由于某些原因,,创建project
后,总是要等待很长时间加载所需jar
包,可以选择使用阿里云提供的中央仓库。
方式一:在setting.xml
配置文件中添加配置
打开Maven根目录下conf
文件夹中的setting.xml
文件,找到<mirrors></mirrors>
标签对,添加如下内容:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
方式二:在pom.xml中直接添加
<!--代码库-->
<repositories>
<repository>
<id>maven-ali</id>
<url>http://maven.aliyun.com/nexus/content/groups/public//</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
配置本地仓库:
1.在没网的情况下我们是无法从互联网仓库中下载jar包的,我们需要将整理好的jar包放入自己本地目录下
2.在MAVE_HOME/conf/settings.xml文件中配置本地仓库位置:
四、全局setting与用户setting
Maven
仓库地址、私服等配置信息需要在setting.xml
文件中配置,分为全局配置和用户配置。
1.Maven
安装目录下的conf/setting.xml
文件,用于Maven
的所有project
项目,它作为Maven
的全局配置
2.如需要个性配置则需要在用户配置中设置,用户配置的setting.xml
文件默认的位置在:${user.dir}/.m2/settings.xml
目录中
3.Maven
会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件
五、Maven项目整体目录结构
Project
|-src
| |-main
| | |-java —— 存放项目的.java文件
| | |-resources —— 存放项目资源文件,如Spring, hibernate,MyBatis配置文件
|-webapp —— webapp目录是web工程的主目录
|-WEB-INF
|-web.xml
| |-test
| |-java ——存放所有测试.java文件,如JUnit测试类
| |-resources —— 测试资源文件
|-target —— 项目输出位置例如.class、.jar、.war文件
|-pom.xml ——Maven项目核心配置文件
网友评论