nexus 仓库类型_Maven私服Nexus的搭建
私服存在的合理性
Maven中的依赖是从服务器仓库中下载的,Maven的仓库只有两大类:
- 本地仓库
- 远程仓库,其中在远程仓库中又分成了3种:中央仓库 、私服、其它公共库。
Maven用户直接连接远程仓库下载构件的做法是Maven不建议使用的(尤其是对一个开发团队来说),Maven的最佳实践就是使用Maven私服来构建整个团队的项目部署和管理。
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
构建Maven私服使用Nexus,Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。
构建你的Nexus
说完了私服的好处,你是不是已经等不及开始构建你的maven私服了,那么我们开始一起构建我们的私服。首先进入Nexus的网站http://www.sonatype.org/nexus/go/,找到你需要的包,下载(演示在CentOS上安装):
如果你希望用一些历史版本的包,https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3,里面自行查找。
首先下载对应的包到服务器上:
mkdir tools #新建tools目录
cd tools # 进入tools目录
wget http://download.sonatype.com/nexus/3/nexus-3.14.0-04-unix.tar.gz # 下载对应的安装包
tar zxvf nexus-3.14.0-04-unix.tar.gz # 解压缩
mv nexus-3.14.0-04/ /usr/local/nexus
cd /usr/local/nexus/bin
安装java运行环境:
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
配置私服
修改nexus.rc,让root可以启动nexus,nexus.rc在/usr/local/nexus/bin/下:
vim nexus.rc,删除run_as_user前面的注释,后面加上root:run_as_user=root
然后按esc按键,输入:wq回车。然后启动nexus
./nexus run &
出现如下内容,表示启动成功
通过http://localhost:8081就可以访问了。
手动同步索引(非必选项)
首先:前往maven中央仓库下载 indexer-cli-5.1.1.jar解压工具
其次下载:nexus-maven-repository-index.properties和nexus-maven-repository-index.gz
再次,将上面下载的3个文件放到同一个路径下,通过如下命令解压:
java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer
最后,拷贝索引
nexus3.x拷贝到/sonatype-work/nexus3/blobs/default,3.x
web的使用
首先访问对应的地址,然后输入默认用户名 admin、密码 admin123:
点击左侧的browse,可以看到各种repository的type,那么这些类型有什么区别呢:
- Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的
所有仓库资源,访问顺序取决于配置顺序3.x默认Releases,Snapshots,Central,可在web页面配置
在web界面点开 - Hosted:私有仓库,专门用来存储我们自己生成的jar文件
- 3rd party:未发布到公网的第三方jar (3.x去除了)
- Snapshots:本地项目的快照仓库
- Releases: 本地项目发布的正式版本
- Proxy:公网上发布的jar 例如:spring
- Central:中央仓库
- Apache Snapshots:Apache专用快照仓库(3.x去除了)
进入设置页面
作如下操作:
配置maven的setting.xml(本地的全局配置)
在maven的setting.xml文件中配置私服配置,这种方式配置后所有本地使用该配置的maven项目的pom文件都无需配置私服下载相关配置(下文中192.179.101.1:8081需要替为你自己的)
<?xml version="1.0" encoding="UTF-8"?>
<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"><servers><server><id>nexus-releases</id><username>deployment</username><password>deployment123</password></server><server><id>nexus-snapshots</id><username>deployment</username><password>deployment123</password></server></servers><mirrors><mirror><id>nexus-releases</id><mirrorOf>*</mirrorOf><url>http://192.168.101.1:8081/content/groups/public/</url><!-- <url>http://repo1.maven.org/maven2/</url> --></mirror><mirror><id>nexus-snapshots</id><mirrorOf>*</mirrorOf><url>http://192.168.101.1:8081/content/repositories/snapshots/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --></mirror></mirrors><profiles><profile><id>nexus</id><repositories> <repository><id>nexus-releases</id><url>http://192.168.101.1:8081/content/groups/public/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository><repository><id>nexus-snapshots</id><url>http://192.168.101.1:8081/content/repositories/snapshots/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>nexus-releases</id><url>http://192.168.101.1:8081/content/groups/public/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository><pluginRepository><id>nexus-snapshots</id><url>http://192.168.101.1:8081/content/repositories/snapshots/</url> <!-- <url>http://repo1.maven.org/maven2/</url> --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></pluginRepository> </pluginRepositories></profile></profiles><activeProfiles><activeProfile>nexus</activeProfile><!--<activeProfile>dev</activeProfile>--></activeProfiles></settings>
捷径:docker部署Nexus
docker确实是个好东西,快速,方便,使用docker部署Nexus那就是几分钟的事情具体如下命令:
docker pull sonatype/nexus3 docker run -d -p 8081:8081 --name nexus sonatype/nexus3
启动完成后,方位http://localhost:8081就可以进入web页面了,其他操作和配置和上面的内容一致,因此这部分就不在这里描述了。
·············欢迎关注专栏:
《测试技术的修炼之道》
作者:测者陈磊
链接:http://www.imooc.com/article/293262
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作
nexus 仓库类型_Maven私服Nexus的搭建相关推荐
- nexus 仓库类型_使用Nexus私服代理其他maven仓库(jitpack、jcenter)
Nexus下载及运行 从Nexus Repository Manager 3.1.0-04开始,Nexus不再提供各平台的二进制安装文件. 下面以Windows平台为例: 下载Nexus压缩包解压之后 ...
- nexus 仓库类型_Nexus仓库搭建及配置详解
Nexus仓库简介 Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven ...
- nexus 仓库类型_Nexus仓库构建
1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...
- 搭建Mavn私服-nexus资源仓库指南
一.了解Nexus 搭建Maven私服nexus指南,好久没有发布博客了,最近一直忙于项目没有更新CSDN,但是并不代表我没有学习,不热爱编程,哈哈哈,有点扯淡.最近在项目中,经常要用到搭建nexus ...
- 【仓库管理】搭建 Maven 私服之一--Nexus仓库(Repository)管理软件
文章目录 Nexus是什么 Nexus下载和安装 1. 进入 Nexus 2.x 下载页面,根据本机操作系统,选择对应的版本进行下载,如下图所示. 2. 将下载 Nexus 安装包解压到本地磁盘,可获 ...
- Maven 私服 Nexus Win 10 安装与快速使用入门
目录 Nexus 私服概述 Nexus 私服下载 与 Win10 安装 Nexus 仓库分类与属性 Nexus 仓库对应的磁盘存储路径 将本地组件上传发布到私服 从私服下载组件到本地仓库 将第三方 J ...
- maven私服nexus搭建并新建仓库使用
一.nexus安装(win11) nexus下载 https://help.sonatype.com/repomanager2/download 报错解决 我这里遇到的是这个bug 去到nexus的日 ...
- 搭建maven的私服nexus
1.搭建maven的私服 http://www.sonatype.org/nexus/downloads/ 搭建私服是团队开发的基础,才能实现组内或者组间的依赖共享,要搭建私服使用工具 ...
- 【Maven】高级应用:私服(nexus)搭建及使用、自定义项目骨架(archtype)
当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库: Maven版本: version(SNAPSHOT):快照版本.随时更新不稳定的,每个版本都只是特定时间点的快照.同时, ...
最新文章
- OpenCV高级拼接Stitcher类
- 9.为包含指针的关联容器指定比较类型
- 关于长寿_FreeCodeCamp可以帮助您更长寿
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
- Coolite动态加载CheckboxGroup,无法在后台中获取
- 这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看
- 一扬开源新闻静态生成系统V1.0发布
- python操作mysql(一)MySQLdb模块安装和数据库基本操作
- 酷q服务器未响应,酷Q怎么了,停运后,其他机器框架,该怎么版
- 论文公式居中编号右对齐方式
- arcgis 经纬度转大地坐标_ArcGIS的地理坐标系与大地坐标系
- c语言高斯法解方程,用C语言实现解线性方程组的高斯消去法
- python中seek函数_Python seek()函数
- 新的博客,新的开始。
- idea、webstorm使用过程出现问题
- appium元素定位之元素定位工具 什么是uiautomatorviewer,uiautomatorviewer是干嘛的
- SALSA:基于Hi-C辅助组装长读长组装结果
- python opencv BGR2RGB转换原理
- obv代码matlab,obv指标源代码,标准obv指标源代码
- 《Effective Morden C++》Item 8: Prefer nullptr to 0 and NULL.
热门文章
- C++ pair类模板
- R语言基础入门(7)之数据类型的性质
- 计算机网络云南大学实验四,云南大学软件学计算机网络原理实验四.doc
- 【OpenCV 例程200篇】32. 图像的扭变(错切)
- 计算机电路基础答案,计算机电路基础模拟试卷答案(B)
- element label动态赋值_基于Element封装可拖动放大缩小的弹窗
- ranger管mysql_添加Kafka的Ranger访问权限策略
- vlan划分不能上网_VLAN工作原理
- wordpress友联_Wordpress 友情链接页面终极版 – Fatesinger
- python多标签分类_如何通过sklearn实现多标签分类?