nexus通常是用来存储jar包的私服,配合maven可以推送和拉取jar包
先安装nexus,这里采用docker compose方式
docker-compose.yml
version: '3'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus
ports:
- 8081:8081
volumes:
- ./data:/nexus-data # 这个data目录需要777权限
environment: # 更多环境参数可在docker hub上搜索sonatype/nexus3查看
INSTALL4J_ADD_VM_PARAMS: "-Dstorage.diskCache.diskFreeSpaceLimit=2048" # 指定磁盘剩余空间检测的大小为2G,磁盘剩余空间小于此值时会报错
通过docker-compose up -d命名启动,docker ps或docker-compose ps查看启动状态,docker-compose logs -f查看启动日志
启动成功后,打开ip:8081,点击右上角Sign in,默认用户名是admin,密码在data目录下admin.password文件中
创建仓库
点击Repositories打开,再点击Create repository,选择Maven2 (hosted),分别创建Release和Snapshot两个仓库,Deployment policy选择Allow redeploy
创建仓库组
再次点击Create repository,这次选择Maven2 (group),在Member repositories中添加刚才创建的两个仓库
创建角色
左侧菜单点击Roles,需要创建两个角色,分别是可以发布jar包的角色和只可以浏览jar包的角色
- 只可以浏览的角色权限选择
- nx-repository-view-maven2-xxx-browse
- nx-repository-view-maven2-xxx-read
其中xxx是上面创建的仓库组名
- 可发布jar的角色权限选择
- nx-repository-view-maven2-xxx-*
- nx-repository-view-maven2-yyy-*
- nx-repository-view-maven2-zzz-*
其中xxx是仓库组名,yyy和zzz是release和snapshot仓库名
创建用户
创建用户,选择相应的角色就可以了
Maven配置
settings.xml中servers节点添加server子节点,如下:
<server>
<id>snapshot</id>
<username>xxx</username>
<password>xxx</password>
</server>
<server>
<id>releases</id>
<username>xxx</username>
<password>xxx</password>
</server>
<server>
<id>public</id>
<username>xxx</username>
<password>xxx</password>
</server>
发布配置
在项目pom.xml中添加
<distributionManagement>
<repository>
<id>releases</id><!-- 和settings.xml中的id一致 -->
<url>http://xxx:8081/repository/release仓库名/</url>
</repository>
<snapshotRepository>
<id>snapshot</id>
<url>http://xxx:8081/repository/snapshot仓库名/</url>
</snapshotRepository>
</distributionManagement>
在maven面板中双击deploy就会将编译好的jar传到nexus仓库中了
拉取配置
在项目pom.xml中添加
<repositories>
<repository>
<id>public</id>
<url>http://xxx:8081/repository/仓库组名/</url>
</repository>
</repositories>
到这里就可以从nexus上拉取jar包了
关注公众号:飞翔的代码