maven私服库Nexus构建
·
一、安装nexus
- 安装jdk
- 安装maven
- 部署安装 nexus
- linux安装包放在网盘中
- 解压nexus tar zxvf nexus-3.19.1-01-unix.tar.gz
- 如果系统配置低,可以修改bin目录下的 nexus.vmoptions
- -Xms2703m
- -Xmx2703m
- 启动 ./bin/nexus start
- 访问 http://xxxxx:8081/
二、nexus后台管理界面操作
2.1、 登录并修改密码
- 根据提示来即可
2.2、搭建私服库
- Repositories
- name的一些说明:
- maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
- maven-releases:私库发行版jar
- maven-snapshots:私库快照(调试版本)jar
- maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
- Nexus默认的仓库类型有以下四种:
- group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;
- hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);
- proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径)
- virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);
- name的一些说明:
- Policy(策略):表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库;
- Public Repositories下的仓库
- 3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库,即第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去;
- Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
- Central: 用来代理maven中央仓库中发布版本构件的仓库
- Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
- Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库
- Releases: 内部的模块中release模块的发布仓库,用来部署管理内部的发布版本构件的宿主类型仓库;release是发布版本;
- Snapshots:发布内部的SNAPSHOT模块的仓库,用来部署管理内部的快照版本构件的宿主类型仓库;snapshots是快照版本,也就是不稳定版本
- 所以自定义构建的仓库组代理仓库的顺序为:Releases,Snapshots,3rd party,Central。也可以使用oschina放到Central前面,下载包会更快
2.3、构建思路
- 首先要明白我们从私服上拉取的jar包的来源,既然是私服,那肯定少不了自定义的jar包,这些jar包是在宿主仓库,也就是hosted类型的仓库,除此之外还有其他的jar包,需要从远程仓库下载,也就是proxy代理类型的仓库。既然来源有多个,我们为了方便,通常会创建一个group,也就是组类型的仓库,将宿主类型和代理类型的包含进去,我们只需要访问组仓库即可

2.4、构建流程
- 创建用户
- nx-admin:管理员权限
- nx-anonymous:匿名用户
- 创建Blod Stores:创建数据文件的保存目录
- Enable Soft Quota:限制目录大小
- 创建代理仓库:
- maven2(proxy)
- Name:唯一值
- Remote storage:指定代理仓库,也就是第三方仓库,一般有阿里、华为等
- http://maven.aliyun.com/nexus/content/groups/public/
- maven2(proxy)
- 创建宿主仓库
- maven2(host)
- Name:唯一值
- Hosted:选择Allow 允许上传
- maven2(host)
- 创建组
- maven2(group)
- Name:唯一值
- Group:也就是拉取代码的仓库顺序
- 先是 宿主(host)、然后是代理仓库(proxy)
- maven2(group)
2.5、使用过程
-
先通过 后台管理界面上传 私服jar包
-
在pom依赖中配置lRepository
-
修改settings.xml文件
- 唯一id,自定义的,和下面的上传DrepositoryId对应一致
- 登录仓库的 账号密码
<server> <id>zzx-group</id> <username>zzx</username> <password>123456</password> </server>- 拉取jar包,从group中拉取,因为host和proxy,我们都加入到组中了
<mirror> <id>zzx-group</id> <name>zzx-group</name> <mirrorOf>*</mirrorOf> <url>http://101.201.145.252:8081/repository/zzx-group/</url> </mirror>{"canTryAgain":false,"scope":"PREVIOUS_EXCEPTION","error":"209","message":"Message[RESOURCE_NOT_EXIST]: Fail to get the resource, userId=weixinobU7Vjn4l2herhluoW8DcsdC8ceU, resourceId=WEBRESOURCE7b81684dbb6a4306b6c7648ede508e00, version=0, mime=unknown","objectUser":"weixinobU7Vjn4l2herhluoW8DcsdC8ceU"}
2.6、命令上传
<dependency>
<groupId>sino</groupId>
<artifactId>sino</artifactId>
<version>1.0.0</version>
</dependency>
- 执行命令
- mvn deploy:deploy-file -DgroupId=com.framework -DartifactId=zzx-order-api -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=target/zzx-order-api.jar -Durl=http://192.168.111.111:8081/repository/maven-snapshots/ -DrepositoryId=maven-snapshots
- DgroupId,-DartifactId,-Dversion三个参数对应jar包的三个参数,也就是在pom文件中依赖的时候需要的三个参数
- Dpackaging:打包类型 (jar文件或者pom文件都可以)
- Dfile: jar包位置
- Durl: 私服仓库地址:http://101.201.145.252:8081/repository/zzx-host/ 传到我们的宿主仓库
- DrepositoryId: 要上传的服务id,settings.xml中的 server的id 我们自己定义的
- mvn deploy:deploy-file -DgroupId=com.framework -DartifactId=zzx-order-api -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=target/zzx-order-api.jar -Durl=http://192.168.111.111:8081/repository/maven-snapshots/ -DrepositoryId=maven-snapshots
更多推荐
所有评论(0)