Docker搭建nexus,并实现上传下拉依赖

Docker搭建nexus,并实现上传下拉依赖

环境

Centos7.4

安装docker

Docker安装博客

使用docker安装nexus

借鉴博客

博客:博客

安装

  1. 查找镜像

    docker search nexus
    
  2. 选取使用次数较多是镜像 拉取镜像

    docker pull sonatype/nexus3
    
  3. 查看拉取的镜像

    docker images
    

    在这里插入图片描述

  4. 创建volume(如果直接用 -v /opt/nexus-data:/nexus-data,可能会存在权限问题)

    docker volume create nexus-data
    
  5. 查看创建结果

    docker volume inspect nexus-data
    

    在这里插入图片描述

  6. 启动nexus

    docker run -d --name nexus3 \
     --restart=always \
    -p 8081:8081 \
    -v nexus-data:/nexus-data \
    sonatype/nexus3
    

    -d 是后台启动
    –name 是启动容器名
    –restart=always 意思docker被重启,对应该容器也会被重启
    -p 宿主机端口映射(:前面是宿主机端口, :后面是容器端口)
    -v 将容器某个目录挂载到宿主机上面 nexus-data是上面配置好的宿主机挂载点,/nexus-data是容器对应路径
    sonatype/nexus3 是启动的镜像

  7. 开放端口

    1. 开放安全组(对应阿里云,腾讯云后台,添加安全组)
    2. 开放防火墙端口
      1. 关闭防火墙
        systemctl stop firewalld
        systemctl disable firewalld
      2. 开启端口
        systemctl restart firewalld
        systemctl enable firewalld
        firewall-cmd --zone=public --add-port=8081/tcp --permanent
        firewall-cmd --reload
        firewall-cmd --list-ports
        在这里插入图片描述

访问web

  1. 访问路径: ip:8081,网上说默认的账号是admin,密码是admin123,实际新版本会随机一个admin密码
    在这里插入图片描述
  2. 获取正确密码
    上面路径我们已经通过docker volume做了映射了,可以通过docker volume inspect nexus-data 查看真实机器路径
    在这里插入图片描述
    cd /var/lib/docker/volumes/nexus-data/_data
    在这里插入图片描述
    cat admin.password
    在这里插入图片描述
    复制登陆
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
禁用 anonymous用户访问
在这里插入图片描述

在这里插入图片描述

这里简单介绍下几种repository的类型:
  1. hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
  2. proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
  3. group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可
介绍我们用使用的仓库

maven-central 配置中央仓库,可以直向maven官方属于代理类的仓库
maven-releases 私人仓库,用户的正式版本的jar存放仓库
maven-snapshots 私人仓库, 用户的快照版本jar存放仓库
maven-public = maven-releases + maven-snapshots + maven-central
这里可以单击 上面maven-public ,查看内部配置
在这里插入图片描述
注意: 我也就是我们搭建私库使用主要就是maven-public库

通过idea上传jar到nexus库里面

setting文件添加server

注意username是在ip:8081登陆账号,password是在ip:8081登陆的密码

<servers>
	<!--maven-public仓库对应账号密码设置-->
	<server>
	  <id>nexus-public</id>     
      <username>admin</username>     
      <password>123456789</password>   
	</server>
	<!--maven-releases仓库对应账号密码设置-->
    <server>     
      <id>nexus-releases</id>     
      <username>admin</username>     
      <password>123456789</password>     
    </server>     
    <!--maven-snapshot仓库对应账号密码设置-->
    <server>     
      <id>nexus-snapshots</id>     
      <username>admin</username>     
      <password>123456789</password>     
    </server>        
  </servers>
</servers>

项目pom文件添加配置

    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>Nexus Release Repository</name>
            <url>http://ip:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://ip:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

在这里插入图片描述
注意: 上面 id 要和 setting里面配置 server下的id一样,要不然就没法调用对应账号密码
注意: 上面 id 要和 setting里面配置 server下的id一样,要不然就没法调用对应账号密码
注意: 上面 id 要和 setting里面配置 server下的id一样,要不然就没法调用对应账号密码
url路径可以通过web页面复制过来
在这里插入图片描述

测试上传

idea可以直接点击 deploy
在这里插入图片描述
或者命令行
mvn deploy
在这里插入图片描述
如果你发布是releases的jar,可能会报错
在这里插入图片描述

在这里插入图片描述
解决方案:
在这里插入图片描述

在这里插入图片描述
选择 Allow redeploy,记得保存

查询是否发布到私服上面去了
在这里插入图片描述

从私库上面拉取jar包

配置方案

  1. 配置repository
    1. pom文件配置repository
    2. setting文件配置repository
  2. setting文件配置mirror

这里要说下maven拉取jar顺序

1、本地仓库
2、maven settings profile中的repository;
3、pom.xml中profile中定义的repository;
4、pom.xml中的repositorys(定义多个repository,按定义顺序找);
5、mirror

通过配置项目repositorys实现拉取

  1. 新建一个maven项目

  2. 项目里面pom文件添加

        <dependencies>
            <dependency>
                <groupId>com.demo</groupId>
                <artifactId>my-maven-demo</artifactId>
                <version>1.0</version>
            </dependency>
        </dependencies>
    
        <repositories>
            <repository>
                <id>nexus-public</id>
                <url>http://ip:8081/repository/maven-public/</url>
            </repository>
        </repositories>
    

    在这里插入图片描述
    拉取前删除本地库对应demo,jar包
    在这里插入图片描述
    点击刷新maven项目
    在这里插入图片描述
    在这里插入图片描述
    从私库里面拉取成功
    在这里插入图片描述

通过pom.xml中profile中定义的repository拉取

  1. pom文件添加
    <dependencies>
        <dependency>
            <groupId>com.demo</groupId>
            <artifactId>my-maven-demo</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>


    <profiles>
        <profile>
            <id>dev</id>
            <repositories>
                <repository>
                    <id>nexus-public</id>
                    <url>http://ip:8081/repository/maven-public/</url>
                </repository>
            </repositories>
        </profile>
    </profiles>
  1. 测试前清空本地仓库
    在这里插入图片描述
  2. 刷新项目
    在这里插入图片描述
    或者命令行运行 mvn clean install -P dev 刷新项目
  3. 拉取成功
    在这里插入图片描述

从maven settings profile中的repository拉取jar

  1. 清空项目pom文件
    在这里插入图片描述

  2. 修改maven setting文件,在setting文件添加profile配置

<profiles>
	<profile>
      <id>jdk-1.4</id>
      <repositories>
        <repository>
          <!--这里名字必须和上面maven-public server id一样 -->
          <id>nexus-public</id>
          <name>Repository for JDK 1.4 builds</name>
           <url>http://ip:8081/repository/maven-public/</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>
</profiles>

 <activeProfiles>
    <activeProfile>jdk-1.4</activeProfile>
  </activeProfiles>
  1. 清空本地仓库
    在这里插入图片描述
  2. idea刷新项目
    在这里插入图片描述
  3. 本地仓库结果
    在这里插入图片描述

通过配置mirror拉取jar包

  1. 清空setting里面 profiles设置
  2. 添加mirror
	  <mirror>
	  <!--这里必须和server id 一样-->
    <id>nexus-public</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://ip:8081/repository/maven-public/</url>
</mirror>
  1. 清空本地仓库
    在这里插入图片描述
  2. 刷新项目
    在这里插入图片描述
  3. 拉取结果
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值