1.Maven前置依赖
检查电脑是是否安装java
2.下载maven
解压 maven 压缩包,
并创建相应的maven本地仓库的路径。
打开 conf文件夹中 修改 settings.xml 文件
2.配置环境变量
maven已经完成了安装,我们可以通过DOS命令检查一下我们是否安装成功: mvn -v
3. settings.xml 的修改和研究
setting.xml的配置文件分类(更改配置的本地仓库)
(1)直接修改Maven中conf文件夹中的setting.xml文件
注:此时更改后,所有的用户都会受到影响,而且如果maven进行升级,那么所有的配置都会被清除,所以要提前复制和备份/conf/settings.xml文件
(2)在.m2文件夹下建立一个setting·xml文件
(3).(多说一下)项目里的pom.xml
有个优先级的,应该是pom>用户级别>全局级别
例:如果pom中不配置,就取用户级别,如果用户级别也没有配置,就取全局级别
故:一般情况下不推荐配置全局的settings.xml
第一点:镜像的配置
setting.xml里面有个mirrors节点,用来配置镜像URL。mirrors可以配置多个mirror,每个mirror有id,name,url,mirrorOf属性。
- id是唯一标识一个mirror
- name貌似没多大用,相当于描述
- url是官方的库地址
- mirrorOf代表了一个镜像的替代位置,例如central就表示代替官方的中央库。
mirror也不是按settings.xml中写的那样的顺序来查询的。所谓的第一个并不一定是最上面的那个。
当有id为B,A,C的顺序的mirror在mirrors节点中,maven会根据字母排序来指定第一个,所以不管怎么排列,一定会找到A这个mirror来进行查找,当A无法连接,出现意外的情况下,才会去B查询。
在setting·xml中添加如下代码:
<mirror> <!--This sends everything else to /public --> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> <mirror> <!--This is used to direct the public snapshots repo in the profile below over to a different nexus group --> <id>nexus-public-snapshots</id> <mirrorOf>public-snapshots</mirrorOf> <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url> </mirror> </mirrors>
第二点:指定本地路径和修改
这是直接修改的maven中conf中的setting.xml文件,此时配置的maven的本地仓库是属于用户范围的。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>E:/Program/apache-maven-3.3.9/repository</localRepository> --> <localRepository>D:/repository</localRepository>
4. idea 安装maven插件
(1)安装maven插件
(2)对maven的maven插件进行相关配置
4.详解pom
Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库。(仓库就是存放依赖和插件的地方)
任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径,
pom里面的仓库与setting.xml里的仓库功能是一样的。主要的区别在于:pom里的仓库是个性化的。
比如一家大公司里的setting文件是公用的,所有项目都用一个setting文件,但各个子项目却会引用不同的第三方库,所以就需要在pom里设置自己需要的仓库地址。
解读Maven在仓库中的存储路径:
- 基于groupId准备路径,将句点分隔符转成路径分隔符,就是将 "." 转换成 "/" ; example: org.testng --->org/testng
- 基于artifactId准备路径,将artifactId连接到后面:org/testng/testng
- 使用version准备路径,将version连接到后面:org/testng/testng/5.8
- 将artifactId于version以分隔符连字号连接到后面:org/testng/testng/5.8/tesng-5.8
- 判断如果构件有classifier,就要在 第4项 后增加 分隔符连字号 再加上 classifier,org/testng/testng/5.8/tesng-5.8-jdk5
- 检查构件的extension,如果extension存在,则加上句点分隔符和extension,而extension是由packing决定的,org/testng/testng/5.8/tesng-5.8-jdk5.jar
有两种pom文件。第一个是项目级别的pom,第二种是模块级别的pom
项目级别的pom: