序言

maven私服类似.net中的nuget包服务器

官网/版本收费

首先要吐槽官网慢的一比,下载不下来。

地址:https://www.sonatype.com/

下载地址:https://www.sonatype.com/download-nexus-repo-oss

版本/收费/免费:Nexus Repository Manager 仓库管理有2个版本,专业版和oss版,oss版是免费的,专业版是收费的,我们使用oss版。

简介

nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问.

nexus是一套开箱即用的系统不需要数据库,它使用文件系统加Lucene来组织数据

nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过IDEA和Eclipse集成使用

nexus支持webDAV与LDAP安全身份认证.

nexus提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,占用较少的内存,基于简单文件系统而非数据库.

为什么使用

  • 节省外网带宽。
  • 加速Maven构建。
  • 部署第三方构件。
  • 提高稳定性,增强控制。
  • 降低中央仓库的负荷。
  • 控制和审计
  • 建立本地内部公用仓库

私服仓库的工作流程

Nexus仓库类型介绍

hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。

proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。

group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

管理本地仓库

我们前面讲到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:

Releases: 这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.

Snapshots:这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.

3rd Party:顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛,没错, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rdparty仓库。

Windows上安装Nexus

我装的版本

官方安装文档:https://help.sonatype.com/repomanager3/installation/installation-methods

免安装的,下载下来,解压直接运行即可。

1.解压

2.配置下环境变量

3.运行起来即可

命令集:  start, stop,  restart,  force-reload

4.校验

打开 http://localhost:8081/

出现如下界面即可,默认账号密码:admin/admin123

有的版本(密码)会放到一个文件夹中:登录后必须修改

配置Nexus

1.基础配置

Maven用到的Repositories说明

maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar

maven-releases:私库发行版jar

maven-snapshots:私库快照(调试版本)jar

maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

如果不够用,自己也可以根据博文上面的仓库类型进行选用创建。

2. 如果需要第三方代理配置如下:

如果是创建的proxy仓库或者hosted仓库,需要添加到公共仓库里。

1. 配置

2.

3.

4.在maven中配置私服,编辑setting.xml

<servers><server><!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。 --><id>nexus</id><username>admin</username><password>admin123</password></server>
</servers><!--为仓库列表配置的下载镜像列表。  -->
<mirrors><mirror><!--该镜像的唯一标识符。id用来区分不同的mirror元素。  --><id>nexus</id><!--此处配置所有的构建均从私有仓库中下载 *代表所有,也可以写central --><mirrorOf>*</mirrorOf><name>central repository</name><!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。  --><url>http://127.0.0.1:8081/repository/maven-public/</url></mirror>
</mirrors><profiles><profile><id>nexus</id><!--远程仓库列表,它是Maven用来填充构建系统本地仓库所使用的一组远程项目。  --><repositories><!--发布版本仓库--><repository><id>nexus</id>      <!--地址是nexus中repository(Releases/Snapshots)中对应的地址--><url>http://127.0.0.1:8081/repository/maven-public/</url><!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 --><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile>
</profiles><!--激活配置-->
<activeProfiles><!--profile下的id--><activeProfile>nexus</activeProfile>
</activeProfiles>

通过命令行上传jar到nexus:

mvn deploy:deploy-file -DgroupId=com.sgcc.ams -DartifactId=ams-base -Dversion=1.7.0 -Dpackaging=jar -Dfile=C:\develop\lib\ams-base-1.7.0.jar -Durl=http://127.0.0.1:8081/repository/maven-releases/ -DrepositoryId=nexus

在项目中配置私服,pom.xml中添加

<!--上传到nexus仓库中,配合mvn deploy:deploy-->
<distributionManagement><repository><!--这里的id需要和settings.xml中的server的id一致 --><id>nexus-release</id><name>Nexus release Repository</name><!--releases仓库 --><url>http://127.0.0.1:8081/repository/maven-releases/</url></repository><snapshotRepository><id>nexus-snapshots</id><name>Nexus snapshots Repository</name><!--snapshots仓库 --><url>http://127.0.0.1:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>

史上最全的nexus私服搭建全流程相关推荐

  1. GitChat·大数据 | 史上最详细的Hadoop环境搭建

    GitChat 作者:鸣宇淳 原文: 史上最详细的Hadoop环境搭建 关注公众号:GitChat 技术杂谈,一本正经的讲技术 [不要错过文末彩蛋] 前言 Hadoop在大数据技术体系中的地位至关重要 ...

  2. 史上最详细Maven笔记以及搭建Nexus私服

    1.配置环境变量 1.1.方式一 M2_HOME 1.2.方式二 1.3. 查看是否配置成功 mvn -version 2.配置maven远程仓库地址 2.1.本地maven加载顺序 查找远程地址:m ...

  3. 02-Maven高级-分模块开发、依赖传递、聚合、继承(SpringBoot的部分底层原理)、多模块开发(环境切换)、Nexus私服搭建与使用

    文章目录 学习目标 一.分模块开发与设计 1. 分模块开发的意义 问题导入 模块拆分原则 2. 分模块开发(模块拆分) 问题导入 2.1 创建Maven模块 2.2 书写模块代码 2.3 通过mave ...

  4. 【nexus 私服搭建】

    1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的负载 ...

  5. Nexus私服搭建与使用

    文章目录 1 私服简介 2 私服安装 步骤1:下载解压 步骤2:启动Nexus 步骤3:浏览器访问 步骤4:首次登录重置密码 3 私服仓库分类 4 本地仓库访问私服配置 步骤1:私服上配置仓库 步骤2 ...

  6. nexus私服搭建及maven生命周期

    一.maven找库流程 从流程上看创建nexus私服,能够优化流程,而且更加快速 二.nexus下载.安装 1.nexus下载地址 https://sonatype-download.global.s ...

  7. Nexus 私服搭建及配置

    Nexus 学习 1. 安装及启动 下载地址 启动 ./nexus start 配置文件 nexus 有两个目录 nexus-3.21.1-01 安装 sonatype-work 数据文件 具体每个目 ...

  8. 转 史上最详细的Hadoop环境搭建

    转载的文章,请告知侵删.本人只是做个记录,一面以后找不到. 前言 Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的扎实程度,会决定在大数据技 ...

  9. 史上最详细阿里云服务器搭建及域名申请攻略

    摘要:本文是用阿里云虚拟主机搭建服务器和测试的攻略,如果你想要的服务器是用来做:个人网站.微信开发.接口开发.小型数据库.毕业设计,那么你应该是找对了. 本文包含:阿里云虚拟主机搭建.万网域名申请和解 ...

最新文章

  1. python import io_详解Python IO编程
  2. web-view里面的网页能请求未配置的request域名吗
  3. PHP利用CURL_MULTI实现多线程
  4. ASP.NET MVC控制器获取前端视图FORM表单的方法
  5. python os system_python中os. popen system的区别
  6. 【c++算法刷题笔记】——洛谷1
  7. 3.Java 面试题整理(线程篇)
  8. OPENQUERY用法以及使用需要注意的地方
  9. CNN 卷积神经网络 池化层Pooling 动手学深度学习v2 pytorch
  10. 如何导出python所有的安装包
  11. caffe源码解析by薛云峰
  12. 关于NMDS的一知半解
  13. 读到良葛格的反思Hello World
  14. 字符串Hash函数对比
  15. Unity3d任务模型自动寻路(人员疏散)
  16. nltk学习之统计词频和分词nltk.word_tokenize nltk.FreqDist
  17. 《请停止无效的努力》读书笔记
  18. 机器学习——正则化线性回归和偏差/方差(Matlab代码实现)
  19. 「SequoiaDB巨杉数据库」Oma()概述2
  20. EasyAR_SDK在unity制作ar视频黑屏,只有声音问题

热门文章

  1. M1 macbook spicy和numpy版本不匹配
  2. Required request body is missing错误
  3. 二维计算机动画基础,二维计算机动画制作新技术分析
  4. c语言*p和**p,c语言分析(*p)++和*p++的不同含义
  5. 【转】EBS财务系统总账模块(GL)会计期间状态总结
  6. C++11 参数绑定-bind函数用法
  7. NFT 的洗盘交易,真的赚钱吗?
  8. Flink Could not find any factory for identifier ‘json‘ that implements DeserializationFormatFactory
  9. 为什么程序员和产品经理水火不容? | 每日趣闻
  10. docker images 保存导入导出、容器导入导出