私服存在的合理性

Maven中的依赖是从服务器仓库中下载的,Maven的仓库只有两大类:

  1. 本地仓库
  2. 远程仓库,其中在远程仓库中又分成了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的搭建相关推荐

  1. nexus 仓库类型_使用Nexus私服代理其他maven仓库(jitpack、jcenter)

    Nexus下载及运行 从Nexus Repository Manager 3.1.0-04开始,Nexus不再提供各平台的二进制安装文件. 下面以Windows平台为例: 下载Nexus压缩包解压之后 ...

  2. nexus 仓库类型_Nexus仓库搭建及配置详解

    Nexus仓库简介 Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven ...

  3. nexus 仓库类型_Nexus仓库构建

    1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...

  4. 搭建Mavn私服-nexus资源仓库指南

    一.了解Nexus 搭建Maven私服nexus指南,好久没有发布博客了,最近一直忙于项目没有更新CSDN,但是并不代表我没有学习,不热爱编程,哈哈哈,有点扯淡.最近在项目中,经常要用到搭建nexus ...

  5. 【仓库管理】搭建 Maven 私服之一--Nexus仓库(Repository)管理软件

    文章目录 Nexus是什么 Nexus下载和安装 1. 进入 Nexus 2.x 下载页面,根据本机操作系统,选择对应的版本进行下载,如下图所示. 2. 将下载 Nexus 安装包解压到本地磁盘,可获 ...

  6. Maven 私服 Nexus Win 10 安装与快速使用入门

    目录 Nexus 私服概述 Nexus 私服下载 与 Win10 安装 Nexus 仓库分类与属性 Nexus 仓库对应的磁盘存储路径 将本地组件上传发布到私服 从私服下载组件到本地仓库 将第三方 J ...

  7. maven私服nexus搭建并新建仓库使用

    一.nexus安装(win11) nexus下载 https://help.sonatype.com/repomanager2/download 报错解决 我这里遇到的是这个bug 去到nexus的日 ...

  8. 搭建maven的私服nexus

    1.搭建maven的私服     http://www.sonatype.org/nexus/downloads/     搭建私服是团队开发的基础,才能实现组内或者组间的依赖共享,要搭建私服使用工具 ...

  9. 【Maven】高级应用:私服(nexus)搭建及使用、自定义项目骨架(archtype)

    当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库: Maven版本: version(SNAPSHOT):快照版本.随时更新不稳定的,每个版本都只是特定时间点的快照.同时, ...

最新文章

  1. OpenCV高级拼接Stitcher类
  2. 9.为包含指针的关联容器指定比较类型
  3. 关于长寿_FreeCodeCamp可以帮助您更长寿
  4. AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
  5. Coolite动态加载CheckboxGroup,无法在后台中获取
  6. 这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看
  7. 一扬开源新闻静态生成系统V1.0发布
  8. python操作mysql(一)MySQLdb模块安装和数据库基本操作
  9. 酷q服务器未响应,酷Q怎么了,停运后,其他机器框架,该怎么版
  10. 论文公式居中编号右对齐方式
  11. arcgis 经纬度转大地坐标_ArcGIS的地理坐标系与大地坐标系
  12. c语言高斯法解方程,用C语言实现解线性方程组的高斯消去法
  13. python中seek函数_Python seek()函数
  14. 新的博客,新的开始。
  15. idea、webstorm使用过程出现问题
  16. appium元素定位之元素定位工具 什么是uiautomatorviewer,uiautomatorviewer是干嘛的
  17. SALSA:基于Hi-C辅助组装长读长组装结果
  18. python opencv BGR2RGB转换原理
  19. obv代码matlab,obv指标源代码,标准obv指标源代码
  20. 《Effective Morden C++》Item 8: Prefer nullptr to 0 and NULL.

热门文章

  1. C++ pair类模板
  2. R语言基础入门(7)之数据类型的性质
  3. 计算机网络云南大学实验四,云南大学软件学计算机网络原理实验四.doc
  4. 【OpenCV 例程200篇】32. 图像的扭变(错切)
  5. 计算机电路基础答案,计算机电路基础模拟试卷答案(B)
  6. element label动态赋值_基于Element封装可拖动放大缩小的弹窗
  7. ranger管mysql_添加Kafka的Ranger访问权限策略
  8. vlan划分不能上网_VLAN工作原理
  9. wordpress友联_Wordpress 友情链接页面终极版 – Fatesinger
  10. python多标签分类_如何通过sklearn实现多标签分类?