【企业自动化】厂长教你使用Nexus搭建Maven私服_nexus 使用

本文详细介绍了如何使用Nexus搭建Maven私服,包括私服的概念、Nexus的功能与优点、安装步骤、环境配置、代理仓库创建、用户权限管理和Maven项目配置等内容,帮助读者实现Maven私服的高效管理。
摘要由CSDN通过智能技术生成

【自动化管理】厂长教你使用Nexus搭建Maven私服

关于作者

  • 作者介绍

🍓 博客主页:作者主页

🍓 简介:JAVA领域优质创作者🥇、一名在校大三学生🎓、在校期间参加各种省赛、国赛,斩获一系列荣誉🏆。

🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨‍💻。

目录
文章目录
1、序言

Nexus可以做Maven私服,私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:

Apache基金会的Archiva、JFrog的Artifacotory和Sonatype的Nexus,Archiva是开源的,Artifacotory和Nexus的核心也是开源的。

Nexus 是“开箱即用”的系统,不需要数据库,它使用文件系统加 Lucene 来组织数据,支持 WebDAV 与 LDAP 安全身份认证。Nexus 还提供了强大的仓库管理功能,构件搜索功能,它基于 REST,友好的 UI 是一个 extjs 的 REST 客户端,它占用较少的内存,基于简单文件系统而非数据库。Nexus 极大地简化了本地内部仓库的维护和外部仓库的访问。另外,Nexus 还可以在代理远程仓库的同时维护本地仓库,以降低中央仓库的负荷,节省外网带宽和时间。
本篇 Nexus 选择 3.x 版本的安装

2、私服是什么?

私服是指私有服务器,是假设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建.有了私服之后,当maven需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,在提供给本地仓库下载.

👦👦👦肯定有小伙伴又要问了

3、Nexus是什么?

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

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

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

Nexus支持WebDAV与LDAP安全身份认证

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

4、为什么要构建Nexus私服?
  • 内网访问,节省外网带宽。
  • 一次外网下载,内网所有用户就可以只下载私服缓存,加速 Maven 项目构建。
  • 允许上传和下载私有库,并且不被外部访问,更加安全。
  • 减少外部网络因素,提供项目构建的稳定性。
  • 方便内部项目服务的依赖引用,而不需要其他项目的完整源代码。
  • 有利于公共构件的维护
  • 提高工作效率

👨‍💻了解完这些基本的概念,我们要开始真正的实战技术了

5、Nexus下载

我们选择使用最流行的开源 Maven 仓库管理软件—Nexus,来快速搭建 Maven 私服

厂长为大家提供了两种下载方法:

Nexus的官网
https://www.sonatype.com/products/repository-oss-download

百度网盘
链接:https://pan.baidu.com/s/1axGwnPzZ8KGa5-L2_8BRgQ
提取码:wpzr

CSDN资源下载

正在提交中······

6、使用Nexus搭建私服
1)免安装的,下载下来,解压直接运行即可。

image-20211029114446249

2)配置下环境变量

这样做的目的是在全局的cmd窗口下都可以进行启动

image-20211029115526771

3)运行

windows+R—》输入cmd—》nexus /run

image-20211028192112720

出现这个框框,就表示启动成功了😃😃😃。

4)检验

在浏览器的地址栏输入:http://localhost:8081/ 访问

image-20211028193718587

注意:可以修改默认端口
nexus\nexus-3.20.1-01\etc\nexus-default.properties

image-20211029120413896

😎解决方案:登陆私服时密码不对的问题

旧版本
  账号 admin
  密码 admin123
新版本(推荐)
  默认的UserName:admin
第一次登陆的时的密码是随机生成的在admin.password文件里面 复制密码登陆
image-20211028193854037

登录后就会出现提示框修改密码,按照提示修改密码就可以使用自己设置的密码进行登录。

7、私服的使用
1)Repositories
  1. hosted:本地仓库(也叫宿主仓库),通常我们会部署自己的构件到这一类型的仓库或者是第三方的包(如:oracel的)。
  2. proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
  3. group:仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组
  4. maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
  5. maven-releases:私库发行版jar
  6. maven-snapshots:私库快照(调试版本)jar
  7. maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

Hosted是宿主机的意思,有三种方式:Releases、Snapshot、Mixed

Releases: 一般是已经发布的Jar包
Snapshot: 未发布的版本
Mixed:混合的

proxy就是代理的意思,代理中央Maven仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地。这样的优势只要其中一个人从中央库下来了,以后大家都是从Nexus私服上进行下来,私服一般部署在内网,这样大大节约的宽带。

Name:就是为代理起个名字
Remote Storage: 代理的地址,Maven的地址为: https://repo1.maven.org/maven2/
Blob Store: 选择代理下载包的存放路径

2)创建Proxy Repository代理仓库。

image-20211029132111057

image-20211029132644408

image-20211029132916642

Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public

3)新建自定义的仓库

image-20211029132111057

image-20211029133207132

image-20211029133401799

4)自定义组资源库

image-20211029132111057

image-20211029133448548

image-20211029133955897

8、在Maven项目使用 Nexus 私服
1)创建角色

一个角色下有多个用户 ,有了角色才能分配给用户权限

image-20211029163659661

image-20211029215552348

2)创建用户

image-20211029215717376

image-20211029215953846

3)maven setting.xml文件配置

定义jar包下载的Maven仓库、定义部署服务器。
但是某些配置例如username和password就保存在构建服务器中的settings.xml中。

id:server 的id,用于匹配distributionManagement库id,比较重要。
username,password:用于登陆此服务器的用户名和密码
privateKey,passphrase:设置private key,以及passphrase
filePermissions,directoryPermissions:当库文件或者目录创建后,需要使用权限进行访问。参照unix文件许可,如664和775
mirrors:表示镜像库,指定库的镜像,用于增加其他库。mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。
id,name:唯一的标志,用于区别镜像
url:镜像的url
mirrorOf:此镜像指向的服务id

servers标签的配置

<servers>
    <!-- server
 | Specifies the authentication information to use when connecting to a particular server, identified by
 | a unique name within the system (referred to by the 'id' attribute below).
 |
 | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
 | used together.
 |
 -->
    <!--自定义maven本地仓库地址 注意斜杠是反的-->
    <localRepository>E:/enviroment/repository</localRepository>
    <server>
      <id>release</id>
      <username>admin</username>
      <password>123456</password>	<!-- 这里的密码是之前你修改的密码-->
    </server>
    
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>123456</password>	<!-- 这里的密码是之前你修改的密码-->
    </server>
</servers>

profiles标签的配置

<profiles>
	<profile>
      <id>default_profile</id>
      <repositories>
        <!--包含需要连接到远程仓库的信息 -->
        <repository>
          <!--远程仓库唯一标识 -->
          <id>nexus</id>
          <!--远程仓库名称 -->
          <name>maven-public</name>
          <!--如何处理远程仓库里发布版本的下载 -->
          <releases>
            <!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
            <enabled>true</enabled>
            <!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->
            <updatePolicy>never</updatePolicy>
            <!--当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。 -->
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <!--如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->
          <snapshots>
            <!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
            <enabled>true</enabled>
            <!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->
            <updatePolicy>always</updatePolicy>
            <!--当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。 -->
            <checksumPolicy>warn</checksumPolicy>
          </snapshots>
          <!--远程仓库URL,按protocol://hostname/path形式 -->
          <url>http://localhost:8081/repository/maven-public/</url>
          <!--用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然而,Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。 -->
          <layout>default</layout>
        </repository>
      </repositories>
      
      <pluginRepositories>  
        <pluginRepository>  
          <id>maven-net-cn</id>  
          <name>Maven China Mirror</name>  
          <url>http://localhost:8081/repository/maven-public/</url>  
          <releases>  
            <enabled>true</enabled>  
          </releases>  
          <snapshots>  
            <enabled>true</enabled>  
          </snapshots>      
        </pluginRepository>  
      </pluginRepositories> 
  
    </profile>
</profiles>

4)部署仓库的用POM中distributionManagement元素来定义的。
<distributionManagement>
    <repository>
        <id>maven-releases</id>
        <name>Nexus Release Repository</name>
        <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>maven-snapshots</id>
        <name>Nexus Snapshot Repository</name>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

接着执行部署命令 mvn clean deploy

到这里Nexus私服就配置好了!谢谢各位小伙伴的观看。

希望本篇文章对各位的学习有帮助,也希望小伙伴们多多支持厂长,留下你们的爱心💕和赞👍!


版权声明:本文借鉴CSDN博主「最佳听众!」的原创文章,遵循CC 4.0 BY-SA版权协议。
原文链接:https://blog.csdn.net/weixin_45851575/article/details/120710667

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值