@TOC
Maven概述
为什么要学习Maven?
1.Maven 作为依赖管理工具
在很多大型的框架中会用到到很多的jar包,maven可以帮助我们去管理这些jar包。包括引入,自动下载.
2.Maven 作为构建管理工具什么是 Maven?
Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具
1、构建
Java 项目开发过程中,构建指的是使用Java 源代码,基于 HTML 的 Thymeleaf 文件,图片,配置文件的过程。
构建过程包含的主要的环节:清理:
删除上一次构建的结果,为下一次构建做好准备
编译:
Java 源程序编译成 *.class 字节码文件
测试:
运行提前准备好的测试程序
报告:
针对刚才测试的结果生成一个全面的信息
打包:
Java工程:jar包Web工程:war包
安装:
把一个 Maven 工程经过打包操作生成的 jar 包或 war 包存入 Maven 仓库
部署
部署 jar 包:把一个 jar 包部署到 Nexus 私服服务器上
部署 war 包:借助相关 Maven 插件(例如 cargo),将 war 包部署到 Tomcat 服务器上2.依赖
如果 A 工程里面用到了 B 工程的类、接口、配置文件等等这样的资源,那么我们就可以说 A 依赖 B。
依赖管理中要解决的具体问题:
>jar 包的下载:使用 Maven 之后,jar 包会从规范的远程仓库下载到本地
jar 包之间的依赖:通过依赖的传递性自动完成
jar 包之间的冲突:通过对依赖的配置进行调整,让某些jar包不会被导入
Maven 的工作机制
maven下载,仓库配置,环境配置
为啥要配置本地仓库,远程仓库?
本地仓库:
本地仓库默认值:用户家目录/.m2/repository。由于本地仓库的默认位置是在用户的家目录下,而家目录往往是在 C 盘,也就是系统盘。将来 Maven 仓库中 jar 包越来越多,仓库体积越来越大,可能会拖慢 C 盘运行速度,影响系统性能。所以建议将 Maven 的本地仓库放在其他盘符下。
远程仓库:
配置阿里云提供的镜像仓库
Maven 下载 jar 包默认访问境外的中央仓库,而国外网站速度很慢。改成阿里云提供的镜像仓库,访问国内网站,可以让 Maven 下载 jar 包的时候速度更快。
Maven 是一个用 Java 语言开发的程序,它必须基于 JDK 来运行,需要通过 JAVA_HOME 来找到 JDK 的安装位置。
具体过程见:maven下载,仓库配置,环境配置
使用 Maven
核心概念:坐标
使用maven之前先理解maven中的核心概念
坐标
使用坐标可以在Maven的仓库中唯一的定位到一个jar包。
涉及到三个向量:
groupId:公司或组织域名的倒序,通常也会加上项目名称artifactId:模块的名称,将来作为 Maven 工程的工程名
version:模块的版本号,根据自己的需要设定
例如:Maven 的构建命令
清理操作
mvn clean
效果:删除 target 目录
编译操作
主程序编译:mvn compile
测试程序编译:mvn test-compile
主体程序编译结果存放的目录:target/classes
测试程序编译结果存放的目录:target/test-classes
测试操作
mvn test
测试的报告存放的目录:target/surefire-reports
打包操作
mvn package
打包的结果——jar 包,存放的目录:target
安装操作
mvn install
安装的效果是将本地构建过程中生成的 jar 包存入 Maven 本地仓库。这个 jar 包在 Maven 仓库中的路径是根据它的坐标生成的。
另外,安装操作还会将 pom.xml 文件转换为 XXX.pom 文件一起存入本地仓库。所以我们在 Maven 的本地仓库中想看一个 jar 包原始的 pom.xml 文件时,查看对应 XXX.pom 文件即可,它们是名字发生了改变,本质上是同一个文件。