Docker搭建nexus私服配置maven仓库

1.设计场景:

当我们进行开发时一些通用的组件为了避免重复开发可以将其打包放在局域网的私有仓库中,这样不仅避免了数据外漏,其次在开发时均可以通过maven进行引入使用。

2.工作原理

私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库。供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从远程仓库下载,缓存在私服上以后,再为Maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构件也能从本地上传到私服上供大家服务。
Docker搭建nexus私服配置maven仓库_第1张图片

私服的工作原理容如下图所示:
Docker搭建nexus私服配置maven仓库_第2张图片

3.安装nexus

我们接下来通过docker来进行安装配置nexus服务

3.1 获取nexus镜像

docker pull sonatype/nexus3

通过

docker images

查看是否拉取成功
Docker搭建nexus私服配置maven仓库_第3张图片

3.2 运行nexus

docker run -d -p 8082:8081 --name nexus  sonatype/nexus3

由于我的8081端口被占用,我改为8082,自己看着改为自己需要的端口即可
查看是否启动成功

docker logs -f nexus

查看日志,若没有报错 ,且输出以下信息则说明输出 成功
Docker搭建nexus私服配置maven仓库_第4张图片

在浏览器访问:http://192.168.1.2:8082/
注意:192.168.1.2是我服务器的ip
用户名:admin
密码通过以下操作进行查看:

  • 1.进入nexus容器
docker exec  -it nexus /bin/sh

在这里插入图片描述

  • 2.cd到nexus-data目录
    使用
cat admin.password

即可查看密码

4.配置阿里云maven代理

Docker搭建nexus私服配置maven仓库_第5张图片

在这里插入图片描述

Docker搭建nexus私服配置maven仓库_第6张图片

Name:aliyun-maven
Remote storage:http://maven.aliyun.com/nexus/content/groups/public/
Docker搭建nexus私服配置maven仓库_第7张图片

Docker搭建nexus私服配置maven仓库_第8张图片

完成以上操作我们就会看到以下页面:
Docker搭建nexus私服配置maven仓库_第9张图片

接下来在maven-public中添加刚刚创建的aliyun-manager
Docker搭建nexus私服配置maven仓库_第10张图片

Docker搭建nexus私服配置maven仓库_第11张图片

Docker搭建nexus私服配置maven仓库_第12张图片

保存即可

5.配置maven的setting.xml

  • 1.添加server
<servers>
<server>
    <id>ninesun_releasesid>
    <username>adminusername>
    <password>你设置的密码password>
server>
<server>
    <id>ninesun_snapshotsid>
	<username>adminusername>
    <password>你设置的密码password>
server>
servers>
  • 2.增加mirrors
 <mirrors>
	  <mirror>
		  <id>maven-publicid>
		  <mirrorOf>*mirrorOf>
		  <name>maven-publicname>
		  <url>http://192.168.1.2:8082/repository/maven-public/url>
    mirror>
  mirrors>

Docker搭建nexus私服配置maven仓库_第13张图片

注意我圈起来的部分,其链接地址通过以下方式获取
Docker搭建nexus私服配置maven仓库_第14张图片

Docker搭建nexus私服配置maven仓库_第15张图片

5.配置项目的pom.xml文件

 <properties>
        <java.version>11java.version>
        <maven.test.skip>truemaven.test.skip>
        <maven.javadoc.skip>truemaven.javadoc.skip>
    properties>
    
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txturl>
            <distribution>repodistribution>
        license>
    licenses>
    
    <distributionManagement>
        <repository>
            
            <id>ninesun_releasesid>
            <name>NineSun Release Repositoryname>
            
            <url>http://192.168.1.2:8082/repository/maven-releases/url>
        repository>
        <snapshotRepository>
            
            <id>ninesun_snapshotsid>
            <name>NineSun Snapshot Repositoryname>
            
            <url>http://192.168.1.2:8082/repository/maven-snapshots/url>
        snapshotRepository>
    distributionManagement>

需要注意的是id要和maven的setting.xml配置相对应
Docker搭建nexus私服配置maven仓库_第16张图片

Docker搭建nexus私服配置maven仓库_第17张图片

我们使用idea的deploy进行打包上传
Docker搭建nexus私服配置maven仓库_第18张图片

出现以下信息表示上传成功
Docker搭建nexus私服配置maven仓库_第19张图片

进入nexus系统进行查看上传信息
Docker搭建nexus私服配置maven仓库_第20张图片

6.如何使用nexus仓库中的maven依赖

Docker搭建nexus私服配置maven仓库_第21张图片

Docker搭建nexus私服配置maven仓库_第22张图片

Docker搭建nexus私服配置maven仓库_第23张图片

复制至我们项目的pomxml文件中即可

你可能感兴趣的:(docker,maven,maven,docker,java,nexus,私服)