Maven问题总结及配置私服或公共仓库
一, Maven概念作用
概念
Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具。
作用
依赖管理(jar包依赖管理)
项目构建(项目编译、打包、测试、部署)。
分模块开发,提高开发效率。
二,Maven下载,安装,配置
下载:
直接搜索maven下载,下载的一般时一个maven压缩包,尽量解压到不包含中文名的目录中
安装配置
maven依赖java环境,所以要确保java环境已配置好 (maven-3.3+ 需要jdk7+)
1,环境变量创建MAVEN_HOME存放maven下载解压后的文件地址
2,环境变量中的Path中存放maven解压后文件的bin目录
3,测试maven已经安装配置完成:命令行输入maven -version可以弹出maven的版本信息说明已安装配置完成。
三,maven仓库
maven仓库的jar包拉取顺序:本地仓库 > 私服(如果配置了的话) > 公共仓库(如果配置了的话) > 中央仓库
本低仓库的位置需要自己创建并在maven配置文件中声明
maven配置文件:和bin目录同级的conf目录下的setting.xml文件。
其中中央仓库默认是国外的网站,版本最全,拉取的也最慢,本地仓库会默认保存使用过的依赖文件。
下面说明私服和公共仓库的配置方式
setting.xml配置公共仓库
setting.xml中添加如下配置(已国内的阿里云发布的为例)
<!--setting.xml中添加如下配置-->
<mirrors><mirror><id>aliyun</id> <!-- 中心仓库的 mirror(镜像) --><mirrorOf>central</mirrorOf> <name>Nexus aliyun</name><!-- aliyun仓库地址 以后所有要指向中心仓库的请求,都会指向aliyun仓库--><url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
</mirrors>
setting.xml配置私服
1,私服概念
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。
有了私服之后,当 Maven 需要下载依赖时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
私服可以解决在企业做开发时每次需要的jar包都要在中心仓库下载,且每次下载完只能被自己使用,不能被其他开发人员使用
所谓私服就是一个服务器,但是不是本地层面的,是公司层面的,公司中所有的开发人员都在使用同一个私服
下载安装
官网下载 :https://blog.sonatype.com/
如maven相似,下载压缩包直接解压在固定目录
启动
解压后在bin目录中执行:
nexus install 在系统中安装nexus服务
nexus uninstall 卸载nexus服务
nexus start 启动服务
nexus stop 停止服务
Nexus登录
访问私服:http://localhost:8081/nexus/
username:admin
password:admin123
setting.xml配置
<servers><server> <id>nexus-public</id> <!-- nexus的认证id 自定义 --><username>admin</username> <!--nexus中的用户名密码--><password>admin123</password> </server>
</servers><profiles><profile> <id>nexus</id> <repositories> <repository> <id>nexus-public</id> <!--nexus认证id 【此处的repository的id要和 <server>的id保持一致】--><!--name随便--><name>Nexus Release Snapshot Repository</name> <!--地址是nexus中仓库组对应的地址--><url>http://localhost:8081/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository></repositories> <pluginRepositories> <!--插件仓库地址,各节点的含义和上面是一样的--><pluginRepository> <id>nexus-public</id> <!--nexus认证id 【此处的repository的id要和 <server>的id保持一致】--><!--地址是nexus中仓库组对应的地址--><url>http://localhost:8081/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile>
</profiles>
<!--或者配置一个镜像-->
<mirrors>
<mirror><id>nexus-aliyun</id><mirrorOf>nexus-aliyun</mirrorOf><name>Nexus aliyun</name><url>http://localhost8081/nexus/content/groups/public</url></mirror>
</mirrors>
<activeProfiles><activeProfile>yourjdk</activeProfile><!-- 使私服配置生效 --><activeProfile>nexus</activeProfile>
</activeProfiles>
Maven项目部署到私服
...<dependencies>.....</dependencies><!-- 在项目的pom.xml中 配置私服的仓库地址,可以将项目打jar包部署到私服 --><distributionManagement><repository><id>nexus-public</id> <!-- nexus认证id --><url>http://localhost:8081/nexus/content/repositories/releases</url></repository><snapshotRepository><id>nexus-public</id> <!-- nexus认证id --><url>http://localhost:8081/nexus/content/repositories/snapshots</url></snapshotRepository></distributionManagement>
</project>
私服仓库介绍
group | 包含多个仓库,通过group库的地址可以从包含的多个仓库中查找构件 |
---|---|
hosted | 私服 服务器本地的仓库,其中存储诸多构件 |
proxy | 代理仓库,其会关联一个远程仓库, 比如中央仓库,aliyun仓库,向该仓库查找构件时,如果没有会从其关联的仓库中下载 |
仓库名 | 描述 |
---|---|
Releases | 存放项目的稳定发布版本,一个模块做完后如果需要共享给他人,可以上传到私服的该库 |
Snapshots | 对应不稳定的发布版本 |
3rd party | 存放中央仓库没有的 ,如ojdbc.jar(oracleq数据库驱动),ValidateCode.jar(验证码工具包),可以上传到私服的该库中 |
浏览器输入私服地址localhost:8081/nexus进入私服并登录
在3rd part可以长传自己的jar依赖包,比如中央仓库没有的验证码的jar包validataCode.jar
注意
如果配置了私服或者国内公共仓库,依赖包的拉取就不会再去国外中央仓库拉取。
尤其是私服,依赖包在最初是空的,需要手动一个一个通过3rd part导入自己的私服。
建议还是使用私服,因为经过长时间的发展,jar包的版本过多存在各种不匹配的问题,需要每位开发者有自己的一套jar匹配版本,一次私服上传,终生有效(本低仓库会自动保存使用过的依赖包)
idea使用自己配置的maven
随pom.xml的改变自动导入
收藏加关注,再来不迷路!!!
Maven问题总结及配置私服或公共仓库相关推荐
- Maven高级-本地仓库访问私服配置及私服资源上传与下载
目录 一.本地仓库访问私服配置 二.私服资源上传与下载 一.本地仓库访问私服配置 我们通过IDEA将开发的模块上传到私服,中间要经过本地的Maven的,本地Maven需要知道私服的访问地址以及私服访问 ...
- Maven_1.了解Maven以及其安装配置
1.了解Maven 介绍Maven 介绍: Maven是Apache基金会下一个跨平台的项目管理工具,用于Java项目的构建.项目信息(项目名称,位置...)管理和依赖(JAR包)管理. 附加:依赖管 ...
- Maven的settings.xml配置详解
Maven的settings.xml配置详解 1 基本介绍 maven的两大配置文件:settings.xml和pom.xml.其中settings.xml是maven的全局配置文件,pom.xml则 ...
- 【Maven学习】Nexus OSS私服仓库的备份与迁移
背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...
- maven setting.xml 中文配置详解(全配置)
<?xml version="1.0" encoding="UTF-8"?> <!--| 官方文档: https://maven.apache ...
- Maven项目发布的配置
摘要:要想发布maven结构的项目到nexus私服上,可以通过两种方式来,一种是在项目的pom.xml文件里面配置,另一种是通过命令的方式发布到nexus私服上,但是这种方式的前提也得在setting ...
- 史上最详细Maven笔记以及搭建Nexus私服
1.配置环境变量 1.1.方式一 M2_HOME 1.2.方式二 1.3. 查看是否配置成功 mvn -version 2.配置maven远程仓库地址 2.1.本地maven加载顺序 查找远程地址:m ...
- Maven的安装与配置[图文并用][一学就会]
学习过程中记录博客的过程第五天,今天去GitHub搜刮了两个spring-boot项目,其中有一个因为忘了配置maven引起了maven包错乱,我也不知道该怎么重新加载,关闭打开修改都不行,气得我直接 ...
- SSM框架搭建--maven的安装和配置
一.什么是maven? Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个 ...
最新文章
- 2021河南省高考文科成绩排名查询,2021年河南高考成绩排名及一分一段表
- tensorrt优化笔记
- 去除字符串中指定字符
- Linux 精准获取进程pid--转
- maven工程src/main/java目录无法创建问题
- HR只在这些时间里看你的简历!
- kafka架构:分区机制详解
- 堆排序 海量数据求前N大的值
- Streamlit —使用数据应用程序更好地测试模型
- 队列处理高并发_高并发架构消息队列面试题解析
- TreeMap1.8源码
- MD5加密以及产生唯一的ID
- python爬虫--爬取豆瓣top250电影名
- FPGA实验2:ADDA测试
- 哪些人需要在三九天调理体质?什么情况需要泡三九药浴?
- 开启并定制 Apache 显示目录索引样式
- 脉冲宽度调制pdm_脉冲宽度调制,脉宽调制
- 计算机重装后如何连接无线网络,笔记本重装系统后无法连接无线网络怎么办
- 裁员不可怕,可怕的是行业在发生巨变,而你却原地踏步
- 让顶部系统状态栏跟随APP背景色