首页 > 其他 > 详细

Nexus3作为maven私有仓库

时间:2021-02-04 17:20:18      阅读:35      评论:0      收藏:0      [点我收藏+]

一、部署 Nexus

可以用来进行指定私服的中央地址、将自己的Maven实际项目推送到私服主流地址、从私服下载中央仓库的项目进行过程中的索引、从私服仓库下载所依赖的组件、将第三方项目jar上传到私服供其他开发组员使用。

测试环境使用Docker安装部署

docker run -d -p 8081:8081 --name nexus -v /data/volumes/nexus-data:/nexus-data sonatype/nexus3

安装完成后默认的admin账号密码存储在了数据目录,获取初始化密码后更新账号密码。

我们将默认的仓库全部删除掉,重新创建

技术分享图片

在创建之前说明下仓库类型  type:

  • hosted: 本地仓库,用于内部项目发布的仓库
  • proxy: 从远程中央仓库中找到数据的仓库,并拉取到本地
  • group: group类型的仓库,是一个聚合类型的仓库。它可以将前面我们创建hosted类型和proxy类型的仓库聚合成一个URL对外提供服务的统一仓库

 

 

 

 1、 Nexus 作为maven私有仓库

1)创建blob存储

技术分享图片

 

2)  创建一个hosted类型的maven仓库

点击Repository下面的 Repositories – Create repository – maven2(hosted) :

Name: 定义一个名称 maven-local

Online: 勾选。这个开关可以设置这个maven repo是在线还是离线。

Maven2:这里有三种方式,Releases、SNAPSHOT、Mixed。

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

技术分享图片

技术分享图片

 

 技术分享图片

 

 3)创建一个proxy类型的maven仓库

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

可以设置多个 proxy 在 group 进行聚合

Name: proxy-maven

Maven 2: 不设置,使用默认。

Remote Storage: 远程仓库地址,这里填写: https://repo1.maven.org/maven2/    ,还可以配置阿里的:   https://maven.aliyun.com/repository/public/

技术分享图片

 

 技术分享图片

 

 4)创建一个group类型的maven仓库。

group类型的maven仓库,是一个聚合类型的仓库。它可以将前面我们创建的2个仓库聚合成一个URL对外提供服务,可以屏蔽后端的差异性,实现类似透明代理的功能。后面通过一些配置,大家可能会对这个group有更加深入的了解。

Name:group-maven

Storage:选择专用的blob存储maven-use。

group : 将左边可选的2个仓库,添加到右边的members下。

技术分享图片

 

 这样配置以后,我们就可以使用了。

5) 配置maven使用nexus私有仓库

将项目编译依赖地址指向改成私服的配置,需要通过更改maven的配置实现,也就是更改maven/conf/settings.xml的仓库地址。

技术分享图片

在servers段添加:
  <servers>
    <server>
      <id>nexus-releases</id>
      <username>admin</username>
      <password>123456</password>
    </server>
 </servers>

在 mirrors 段添加:
<mirrors>
    <mirror>        
      <id>nexus-releases</id>        
      <name>nexus-maven-public</name>        
      <url>http://192.168.75.11:8081/repository/group-maven/</url>        
      <mirrorOf>*</mirrorOf>        
    </mirror>
</mirrors>

拉取之后,进到项目里边,开始编译。

请注意,这个时候,我们的group里边是空空如也的。

技术分享图片

 

 

找一个springboot项目,地址:https://start.spring.io/

那么接下来开始编译:

unzip demo.zip
cd demo
mvn install -e

技术分享图片

 

 接下来就会进入各种依赖下载的界面

技术分享图片

这个时候我们可以明白,其实我新搭建的仓库里边是空的,那么这会儿的流程就是经由group,转向我们配置的proxy,私服在通过proxy拉取远程的jar,然后再经由group,反馈给当前的项目。

去私服里看看:

技术分享图片

可以看到刚刚编译过程中所下载的jar,都如我们所想的呈现在了group当中,明明是通过proxy下载的远程jar,为何可以在group里边看到呢,我想,这就是我刚刚说的,group的妙处所在吧。

maven私服的基本框架已经搭成,当某一些jar无法下载的时候,一般情况下的解决办法都是通过手动下载,然后再手动上传到私服当中。

 

Nexus3作为maven私有仓库

原文:https://www.cnblogs.com/deny/p/14373030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!