(六)maven私服nexus与配置
创始人
2025-05-28 21:39:59

目录

1,nexus的安装和启动

2, nexus介绍

3,nexus中jar包获取流程

4,生产级nexus配置

5,配置setting,从私服下载maven依赖文件

6,配置项目,让项目能够发布到私服

7,jar包手动上传


1,nexus的安装和启动

  • 下载安装包,地址(windows版本)如下:

https://download.csdn.net/download/bemavery/18520683?spm=1001.2014.3001.5501

  • 解压缩出如下文件

nexus-3.18.1-01  : 这里包含nexus运行需要的文件

sonatype-work : 包含nexus的配置文件、日志文件、仓库文件

  • 启动

./bin/nexus.exe /run

打开浏览器访问http://localhost:8081/

默认管理员帐号 admin  , 密码会在第一次启动的时候随机生成一个, 一旦登录成功,密码文件会消失, 记得要保存

2, nexus介绍

  • 仓库分类

hosted:宿主仓库,这个仓库,是用来让你把你公司内部的发布包部署到这个仓库里来,然后公司内的其他人就可以从这个宿主仓库里下载依赖去使用

proxy:代理仓库,这个仓库不是用来给你公司内部的发布包部署的,是代理了公司外部的各种仓库的,比如说java.net,codehaus,jboss仓库,最最重要的,就是代理了公司外部的中央仓库,但是这里其实可以修改为nexus连接的应该是国内的阿里云镜像仓库,阿里云去连接中央仓库

group:仓库组,其实就是将,各种宿主仓库、代理仓库全部组成一个虚拟的仓库组,然后我们的项目只要配置依赖于一个仓库组,相当于就是可以自动连接仓库组对应的各种仓库

仓库的格式是maven1或者maven2,这里现在统一都是maven2

  • 仓库 

maven-central:这是maven中央仓库的代理仓库

maven-releases:该仓库是个宿主仓库,用于部署公司内部的release版本的发布包(类似于1.0.0,,release的意思就是你的工程已经经过了完善的测试,单元测试,集成测试,QA测试,上生产环境使用了)到这个仓库里面,供其他同事在生产环境依赖和使用

maven-snapshots:该仓库是个宿主仓库,用于部署公司内部的snapshot版本的发布包到这个仓库里(如果你的某个工程还在开发过程中,测试还没结束,但是,此时公司里其他同事也在开发一些工程,需要依赖你的包进行开发和测试,联调,此时你的工程的版本就是类似1.0.0-SNAPSHOT这样的版本),供其他同事在开发和测试的时候使用

3rd party:该仓库是个宿主仓库,主要用来部署没法从公共仓库获取的第三方依赖包,比如说,你的公司依赖于第三方支付厂商的一个依赖包,那个依赖包不是开源的,是商业的包。那么你是没有办法从maven中央仓库获取的。此时,我们可能会自己手动从支付厂商那里获取到一个jar包,下载之后上传到私服里来,就放这个仓库里,3rd-party仓库

maven-public:仓库组,上面所有release仓库都在这个仓库组内 

3,nexus中jar包获取流程

4,生产级nexus配置

  • maven-public仓库组配置

maven-central代理仓库:从直接代理maven中央仓库,修改为代理阿里云仓库,http://maven.aliyun.com/nexus/content/groups/public

  • maven-snapshots宿主仓库:已有
  • maven-releases宿主仓库:已有
  • 3rd-party仓库:需要手动创建

  • 再次配置maven-public仓库组,将3rd-party仓库加入其中

5,配置setting,从私服下载maven依赖文件

  • 通常会在settings.xml配置文件中,为当前机器统一配置使用的私服仓库地址,而且一般都是直接用私服中的仓库组,在settings.xml中用profiles即可。
nexuscentralNexus http://centraltruetruecentralNexus Plugin Repositoryhttp://centraltruetrue
//这里激活的是 profile 的idnexus

注意:  id都是central, 覆盖超级pom文件是为了更改snapshots和releases的属性

  • 要用mirror镜像机制,来强制要求所有对远程仓库的请求,全部通过镜像走私服
nexus*http://localhost:8081/nexus/content/groups/public

由于我们的镜像匹配所有请求,所以所有请求都会走镜像,而镜像配置的是私服地址,所以相当于所有的请求都会走私服了

http://central 这个配置相当于没有任何作用

6,配置项目,让项目能够发布到私服

  • (1)发布仓库配置

将项目发布包部署到哪个仓库中,是需要用下面的pom.xml中的配置来设置的:

nexus-releases Nexus Release Repositoryhttp://localhost:8081/nexus/content/repositories/releases/nexus-snapshots Nexus Snapshot Repositoryhttp://localhost:8081/nexus/content/repositories/snapshots/
  • (2)部署专用账号的配置

nexus仓库对于普通的匿名用户是只读的,也就是说,只能下载依赖,不能部署发布包,因此如果要能够部署发布包,还需要在settings.xml文件里通过元素配置使用专用的部署用户,来通过认证,进行发布包的部署。

//需要在settings中配置:
nexus-releasesdeploymentdeployment123nexus-snapshotsdeploymentdeployment123

这里需要注意的是pom文件中 , repository中的id, 必须和server中的id一致, 这样需要权限的时候才能找到真正的权限

7,jar包手动上传

  • 先配置相关的操作权限的用户
nexus-3rd-partydeploymentdeployment123
  • 操作上传 

 mvn deploy:deploy -file  -DgroupId=com.csource  -DartifactId=fastdfs-client-java  -Dversion=1.24  -Dpackaging=jar  -Dfile=F:\DevelopmentKit\fastdfs_client_v1.24.jar  -Durl=http://localhost:8081/repository/3rd-party/  -DrepositoryId=nexus-3rd-party

这里DrepositoryId  对应的是 server中的id

相关内容

热门资讯

豆包手机重启限量发售!此前传被... 本文来源:时代周报 作者:何珊珊因AI接管功能迅速走红的豆包手机再次开放少量购买资格,此前它已接连深...
治不了阿尔兹海默还治不了你 今天看到复星医药准备花14亿把神药公司绿谷给买了,那乃悟作为绿谷的老朋友高低得来两句。绿谷现在最广为...
放弃控制权、索赔额大减36%!... 广州轻工工贸集团有限公司(下称“广州轻工集团”)放弃良品铺子了。12月16日,良品铺子发布公告称,广...
知名富翁疯狂代孕,吓坏美国法官... 近日,有媒体报道,一位中国亿万富翁在美国 “疯狂”代孕,吓得法官否了他的亲权申请。而这位富翁,正是多...
用12个问题,开启更有钱的20... 点击 “简七读财” ,发送消息“ 理财 ”小白轻松入门~晚上好,我是简七~上周我去了一趟普陀山,在...