Maven 并不是直接用来辅助编码的,它战斗的岗位并不是以上各层。所以我们有必要通过企业开发中的实际需求来看一看哪些方面是我们现有技术的不足。
Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和
依赖管理。Maven 这个单词的本意是:专家,内行
构建就是以我们编写的Java代码、框架配置文件、国际化等其他资源文件、Jsp页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。
Maven可以自动的从构建过程的起点一直执行到终点;
Maven 能够实现自动化构建是和它的内部原理分不开的,这里我们从 Maven 的九个核心概念入手,
看看 Maven 是如何实现自动化构建的
1.检查JAVA_HOME环境变量
C:\Users\ZHH>echo %JAVA_HOME% E:\java\jdk
2.将Maven放在一个非中文无空格路径下
E:\java\maven\apache-maven-3.2.2
3.配置Maven相关的环境变量
MAVEN_HOME或M2_HOME
E:\java\maven\apache-maven-3.2.2
path
%M2_HOME%\bin
4.验证:运行mvn -v命令查看Maven版本
是为了让Maven能够识别我们自定义的东西,从而进行项目的自动化构建。
约定>配置>编码
mvn compile 编译
mvn clean 清理
mvn test 测试
mvn package 打包
※注意:运行Maven命令时一定要进入pom.xml文件所在的目录!
1.Maven的核心程序中仅仅定义了抽象的生命周期,但是具体的工作必须由特定的插件完成,而插件本身并不包含在Maven的核心程序中
2.当我们执行的Maven命令中需要用到某些插件时,Maven核心程序会首先到本地仓库中查找。
3.本地仓库的位置
C:\Users\ZHH\.m2\repository
4.Maven的核心程序如果在本地仓库找不到需要的插件,那么他会自动连接外网,到中央仓库下载
5.如果此时无法连接外网,则构建失败。
6.修改默认本地仓库的位置可以让Maven的核心程序到我们事先准备好的目录下查找插件
找到Maven解压目录\conf\settings.xml
在settings.xml找到localRepository标签
将/path/to/local/repo从注释中取出
将标签内容修改为已经准备好的Maven仓库目录
<localRepository>E:\java\RepMaven</localRepository>
POM
Project Object Model:项目对象模型。将 Java 工程的相关信息封装为对象作为便于操作和管理的模型。
Maven 工程的核心配置。可以说学习 Maven 就是学习 pom.xml 文件中的配置。
8.坐标
使用如下三个向量在 Maven 的仓库中唯一的确定一个 Maven 工程。
[1]groupid:公司或组织的域名倒序+当前项目名称
<groupId>com.atguigu.maven</groupId>
[2]artifactId:当前项目的模块名称
<artifactId>Hello</artifactId>
[3]version:当前模块的版本
<version>0.0.1-SNAPSHOT</version>
如何通过坐标到仓库中查找 jar 包
[1]将 gav 三个向量连起来
com.atguigu.maven+Hello+0.0.1-SNAPSHOT
[2]以连起来的字符串作为目录结构到仓库中查找
com/atguigu/maven/Hello/0.0.1-SNAPSHOT/Hello-0.0.1-SNAPSHOT.jar
※注意:我们自己的 Maven 工程必须执行安装操作才会进入仓库。安装的命令是:mvn install
[1]本地仓库:为当前本机电脑上的所有 Maven 工程服务。
[2]远程仓库
(1)私服:架设在当前局域网环境下,为当前局域网范围内的所有 Maven 工程服务。
(2)中央仓库:架设在 Internet 上,为全世界所有 Maven 工程服务。
(3)中央仓库的镜像:架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快的响应用户请求。
[1]Maven 的插件
[2]我们自己开发的项目的模块
[3]第三方框架或工具的 jar 包
※不管是什么样的 jar 包,在仓库中都是按照坐标生成目录结构,所以可以通过统一的方式查询或依赖。
4.6.1.Maven解析依赖信息时会到本地仓库中查找被依赖的jar包。
对于我们自己开发的Maven工程,使用mvn install命令安装后就可以进入仓库。
依赖的范围
依赖的传递性
依赖的排除
不稳定版,或对当前工程有不良影响的jar包
依赖的排除配置方式
<exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions>
依赖的原则:解决 jar 包冲突
]路径最短者优先
路径相同时先声明者优先
这里“声明”的先后顺序指的是 dependency 标签配置的先后顺序。
径
2. User settings file:maven安装目录\conf\settings.xml
3. Local repository:获取本地仓库的位置
4. Runner
1. VM Options:-DarchetypeCatalog=internal maven创建时会从网络下载一个archetype-catalog.xml做为项目的模板文件,大约有8m左右,设置这个表示不用去下载文件,加快maven创建
2. JRE:换成自己的jdk