Docker安装Nexus

发布时间 2023-12-19 10:21:40作者: 梅丹隆

false一、Maven仓库结构

image.png

二、安装Nexus

1、拉取镜像

docker pull sonatype/nexus3

2、创建挂载目录

# 创建目录
mkdir /usr/local/docker/nexus

# 一定要授权
chmod 777 /usr/local/docker/nexus

3、创建和启动Nexus容器

docker run -d \
--privileged \
--restart=always \
-p 8081:8081 \
--name mynexus \
-v /usr/local/docker/nexus:/nexus-data \
sonatype/nexus3
docker logs -f mynexus

4、获取Nexus初始密码

# 进入容器
docker exec -it mynexus /bin/bash

# 进入指定目录admin.password文件
cat /opt/sonatype/sonatype-work/nexus3/admin.password

查看的只是临时密码,修改密码后admin.password文件会消失

5、登录Nexux管理后台

后台地址:http://ip:8081
默认用户名:admin

三、配置Nexus后台

1、创建Blob Stores

image.png
image.png
image.png

2、Nexus仓库

image.png
代理仓库负责代理远程中央仓库

  • maven-central

托管仓库负责本地资源

  • maven-releases
  • maven-snapshots

组资源库 = 代理资源库 + 托管资源库

  • maven-public

3、创建代理仓库Proxy Repository

image.png
image.png
image.png

# 阿里云地址
http://maven.aliyun.com/nexus/content/groups/public

4、创建托管仓库Hosted Repository

image.png
image.png
Hosted设置:

  • Allow redeploy:允许同一个版本号下重复提交代码,Nexus以时间区分
  • Disable redeploy:不允许同一个版本号下重复提交代码
  • Read-only:不允许提交任何版本

原生的maven-releases库是Disable redeploy设置,maven-snapshotsAllow redeploy

5、创建组仓库Group Repository

image.png
image.png

将hosted repositories宿主仓库的顺序放在proxy repositories代理仓库之前,因为一个group仓库组中可以包括宿主仓库和代理仓库。而整个group repository是作为一个public repository给用户使用的
所以当查找jar包的时候,如果代理资源库在前面,那就是先从远程去查找jar包,而不是先从宿主仓库(本地仓库)去查找jar包

6、创建快照仓库Snapshot Repository

image.png
image.png
image.png

四、Maven设置

1、修改Maven的setting.xml文件

<!--nexus服务器,id为组仓库name-->
<servers>  
  <server>  
    <id>whitrue_group</id>  
    <username>admin</username>  
    <password>***</password>  
  </server> 
  <server>  
    <id>whitrue_hosted</id>  
    <username>admin</username>  
    <password>***</password>  
  </server>
</servers>

<!--仓库组的url地址,id和name可以写组仓库name,mirrorOf的值设置为central-->  
<mirrors>     
  <mirror>  
    <id>whitrue_group</id>  
    <name>whitrue_group</name>  
    <url>http://******:8081/repository/whitrue_group/</url> 
    <mirrorOf>central</mirrorOf>  
  </mirror>     
</mirrors>

2、Maven编译

mvn clean compile -U

3、Maven打包

mvn deploy

五、Pom文件设置

<distributionManagement>
  <repository>
    <!--release版本仓库-->
    <id>nexus-releases</id> 
    <name>Nexus Release Repository</name>
    <url>http://ip:8081/repository/whitrue_hosted/</url>
  </repository>
  
  <snapshotRepository>
    <!--snapshot版本仓库-->
    <id>nexus-snapshots</id> 
    <name>Nexus Snapshot Repository</name>
    <url>http://ip:8081/repository/whitrue_snapshots/</url>
  </snapshotRepository>
</distributionManagement>

<repositories>
  <repository>
    <!--支持下载snapshot版本jar包-->
    <id>whitrue_group</id>
    <url>http://ip:8081/repository/whitrue_group/</url>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </repository>
</repositories>

参考

《使用Docker搭建Nexus私有仓库》