Maven安装及配置

0、Maven介绍

       Maven是一个项目管理工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
       在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。

1、Maven安装

       要使用Maven前要先在电脑上安装Maven
       1. 下载地址:Maven
       2. 设置环境变量M2_HOME、MAVEN_HOME和PATH
       3. 检验Maven有没有安详成功,在命令行中输入mvn -version

2、在IntelliJ IDEA配置Maven

       在IDEA的file/settings中选择如下界面:



       将Maven home directory中的目录改为步骤一中Maven压缩包解压缩的主目录。User settings file和Local repository是工程自动配置的。

3、新建Maven工程


       一路Next,不需要进行额外的设置,最后出现这个页面:



       需要注意的是,这里的groupId、artifactId和version指的是我们自建的项目的坐标值,而不是要添加的依赖关系的坐标值。

4、修改pom.xml

5、修改本地仓库

       Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下。修改本地库位置:在$MAVEN_HOME/conf/setting.xml文件中修改。



       修改完settings.xml配置文件后,需要手动在IDEA中更新xml文件。



       设置好本地仓库后,从网上下载的所有jar包,都被丢到该目录下,我们可以直接通过maven的pom.xml配置文件从本地仓库中直接获取已经下载好的jar包。
Maven仓库分类

       当工程需要某个jar包时,其搜索顺序如下:工程会优先从本地仓库中搜索jar包。如果本地仓库中没有jar包,配置了私服的话,就从私服中查找;私服中没有,就会从互联网中的中央仓库中获取,然后下载到我们的本地仓库中,同时缓存在私服之上,下次再使用该jar包,就会直接从本地仓库中拿取(私服是一种特殊的远程Maven仓库,它是架设在局域网内的仓库服务,私服一般被配置为互联网远程仓库的镜像,供局域网内的Maven用户使用。私服可以使用局域网,但是中央仓库必须使用外网)。另外,对于自定义或第三方的jar可以从本地上传到私服,供局域网内其他maven用户使用。


私服

6、如何获取Maven坐标

1、登陆网页:maven repository
2、搜索关键字


3、获取坐标

7、修改镜像

       mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。mirror表示的是两个Repository之间的关系,在maven配置文件(setting.xml)里配置 了.........., 即定义了两个Repository之间的镜像关系。设置镜像一般是为了加快访问速度和下载速度,通过修改mirror,将对中央库或者第三方库的请求,都重新定向到某指定的镜像仓库,从该镜像仓库来下载jar包。


mirror原理

       上图中,B Repository被称为A Repository的镜像。如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取。
       我自己修改的mirror配置如下,将zte内部私服设置为所有远端库的镜像:



       这里需要注意下几个字段的意思:
       id,name,url与一般仓库配置无异,表示该镜像仓库的唯一标识符、名称以及地址。类似地,如果该镜像需认证,也可以基于该id配置仓库认证。

       标签里面放置的是要被镜像的Repository ID。其有如下几种常见的配置:
       central表示该配置为中央仓库的镜像,任何对于中央仓库的请求都会转至该镜像。
       *表示该配置是所有Maven仓库的镜像。
       external:*表示匹配所有远程仓库,使用localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。
       repo1,repo2表示匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
       *,!repo1表示匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。
       如果该镜像仓库需要认证,则配置一个Id为internal-repository的即可。

你可能感兴趣的:(Maven安装及配置)