(六)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

相关内容

热门资讯

重大发现.西兵互娱炸金花.有挂... 亲.西兵互娱炸金花这款游戏是可以开挂的,确实是有挂的,通过添加客服【8435338】很多玩家在这款游...
重大通报“皇豪互娱斗牛其实真有... 您好:皇豪互娱斗牛这款游戏可以开挂,确实是有挂的,需要软件加微信【4770480】,很多玩家在皇豪互...
玩家实测“牛大亨到底是不是有挂... 您好:这款游戏牛大亨可以开挂的,确实是有挂的,通过微信【88662864】很多玩家在这款游戏中打牌都...
重大通报~"同城乐吧... 有 亲,根据资深记者爆料同城乐吧510K是可以开挂的,确实有挂(咨询软件...
玩家必看“中至上饶麻将是不是有... 您好:中至上饶麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【69174242】,很多玩家在中至...