Maven
文章目录
1.简介
2.作用
-
项目构架:编译 -->测试–>打包–>运行
-
依赖管理:jar包管理
-
项目聚合:
Maven\Gradle\Ant
3.安装
-
配置环境变量(配置完毕后通过调用mvn -version进行测试)
变量名 值 MAVEN_HOME MAVEN项目根目录 %MAVEN%\bin 添加到Path路径 -
文件夹目录
bin:含有mvn运行脚本
boot:含有plexus-classworlds类加载器框架
lib:含有Maven运行时所需要的java类库
conf:含有setting.xml配置文件
Setting:默认repository仓库路径($(user)/.m2/repository),通过Maven下载的jar包都会保存在该路径
4.仓库配置setting.xml
-
本地仓库:就是Maven在本机存储构件的地方。maven的本地仓库,在安装maven后并不会创建,它是在第一次执行 maven命令的时候才被创建。maven本地仓库的默认位置:在用户的目录下都只有一个.m2/repository/的仓库目录;可以修改。
<localRepository> E:/repository/maven/repos</localRepository>
-
中央仓库:包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。开源的Java项目依赖的构件都可以在这里下载到。
中央仓库的地址:http://repo1.maven.org/maven2/ -
私服:是一种特殊的远程仓库,它是架设在局域网内的仓库。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LDOvZMdY-1571881204071)(G:\QF\Markdown\pic\Pharse3\Maven\仓库联系.png)]
5.私服搭建(了解面试):nexus maven
-
解压文件
-
配置环境变量
变量名 值 NEXUS_HOME 安装地址(解压地址) %NEXUS_HOME%\bin 加入Path路径 -
打开命令行执行命令
C:\Users\Administrator>nexus install 安装服务 C:\Users\Administrator>nexus start 启动服务 C:\Users\Administrator>nexus uninstall 卸载服务
-
访问私服
默认账户:admin 密码:admin123 访问路径:http://localhost:8081/nexus
NEXUS内部使用Jetty作为服务器,界面通过ext.js开发
-
仓库分类
-
host仓库—>内部项目的发布仓库
-
Snapshots 发布内部snapshots版本的仓库
-
Releases 发布内部release版本的仓库
Snapshot版本代表不稳定、尚处于开发中的版本,快照版本。
Release版本则代表稳定的版本,发行版本。
3rd party 发布第3方jar包的仓库,如oracle数据库驱动,open-189.jar
-
proxy仓库—>从远程中心仓库查找jar包的仓库
-
Apache Snapshots 查找Apache项目的快照版本的仓库
-
Central 中心仓库http://repo1.maven.org/maven2/
-
Codehaus Snapshots 查找Codehaus 的快照版本的仓库
-
group仓库—>把仓库按组划分,以组为单位进行管理
-
virtual仓库
-
-
私服的配置/Repository的配置
在parent模块的pom.xml中加入私服的配置,让Maven从私服下载jar包,而不直接去远程仓库下载。
默认情况下,Maven下载jar包将直接连接到外网http://repo1.maven.org/maven2/去下载;
安装私服之后,让Maven下载jar包先从私服查找,如果没有,再从外网下载并保存在私服上
在POM在加入下面的配置,其中url为NEXUS私服的Public Repository对外的地址
以后,Maven下载构建(jar包或插件)都将从这里开始下载
<!--配置私服--> <profiles> <profile> <id>profile-nexus</id> <repositories> <repository> <id>nexus</id> <url>http://localhost:8081/nexus/content/groups/public/</url> <snapshots><enabled>true</enabled></snapshots> <releases><enabled>true</enabled></releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <url>http://localhost:8081/nexus/content/groups/public/</url> <snapshots><enabled>true</enabled></snapshots> <releases><enabled>true</enabled></releases> </pluginRepository> </pluginRepositories>