基于docker搭建maven私服

  • 应用场景
     1. 可以将公司内部的项目部署到私服上(局域网),以便供其他依赖项目使用。 
     2.为了节省带宽和时间。当本地
    Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,整个项目还是可以正常使用的。也降低了中央仓库的负荷
     
     
  • 环境搭建
  1. 安装docker
     参考文档: https://blog.csdn.net/xiaobo5264063/article/details/100939821
     
  2. 下载一个nexus3的镜像
    docker pull sonatype/nexus3
  3. 启动并挂载 
    将容器内部/var/nexus-data挂载到主机/root/nexus-data目录
    docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
    估计等待1至2分钟
  4. 访问
    // 查看是否启动成功
    docker logs -f 容器id
    // 关闭防火墙
    systemctl stop firewalld.service
    // 访问链接
    http://ip:8081
    

     
     
  5. 获取密码
    默认的账号:admin 密码:admin123这里是无法登录,因为Nexus3及后续的版本不支持默认密码: admin123 了,采用了随机密码,如何查看登录密码呢?
    // 查看启动的Nexus3容器id
    docker ps
    // 进入容器
    docker container exec -it 容器id  /bin/bash
    // 进入目录
    cd /
    cd nexus-data
    // 查看初始化的随机密码
    cat admin.password

     如上图所示"9ff950ef-dd81-458a-a1ab-99ead5d1215f"就是随机生成的登录密码 
  6. 登录

    账号:admin 密码:9ff950ef-dd81-458a-a1ab-99ead5d1215f
    登录成功后,会提示修改密码,照着操作就行了! 
    安装完成了!!!
  • 如何修改maven私服的远程仓库地址
  1. 登录nexus,点击'设置'-->'Repositories',找到'maven-central'中'proxy'点击进入

     
  2. 找到'Proxy'-->'Remote storage:',修改保存

    可以修改成阿里的仓库地址
  • 如何上传或引入项目到maven私服  
    这里分为五步: 1.创建仓库   2.创建用户  3.配置maven  4.上传项目  5.引入项目
     
     
     
  • 创建仓库
  1. 登录nexus,点击'设置'-->'Repositories'-->'Create repository'
  2. 这里选择'maven2 (hosted)', 进入
     
  3.  创建仓库
    输入仓库名称(自定义)
    在'Hosted'-->'Deployment policy:'下选择'Allow redeploy'  , 其他的默认就行

     Release:  版本类型,和你本地要一致
     点击页面最下方的'Create repository',创建仓库
  4. 查看仓库地址

    在列表处,点击仓库名称进入, 在URL这里就是我们的仓库地址: http://192.168.2.126:8081/repository/pitch-release/这里仓库就创建完成了!!!接下来创建用户
  • 创建用户
  1. 创建用户
    点击'设置'-->'Users'-->'Create local user'
  2. 设置用户信息

    输入'ID'、'First name'、'Last name'  项,自定义,这里我设置的都是pitch
    输入'Email'
    输入 'Password'、'Confirm password'项,密码和确认密码
    选择'Status'项,选择'Active'激活状态 
    选择'Roles'项,选择'nx-admin'和'nx-anonymous' 
    点击'Create local user',保存用户 
  3.  查看用户

    使用账户:pitch ,也可以登录我们的nexus 
    这里用户创建完成了
     
  4. 上面步骤已经完成了在nexus中完成了仓库和用户的创建,记住如下信息
    // pitch-release仓库地址
    http://192.168.2.126:8081/repository/pitch-release/
    // 用户id
    pitch
    // 用户名称
    pitch
    // 用户密码
    123456
    接下来就是就是我们本地的配置了
  • 配置maven
  1. 找到你本地maven的settings.xml 文件
  2. 配置settings.xml 文件,添加配置信息如下: 
      <servers>
        <!--配置私服的id、账户、密码-->
    	<server>
            <id>pitch</id>
            <username>pitch</username>
            <password>123456</password>
          </server>
    
      </servers>

     
  • 上传项目
     
  1. 创建springboot项目,在pom.xml中添加如下配置
     <!--注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE -->
      <distributionManagement>
        <repository>
          <!--此名称要和.m2/settings.xml中设置的ID一致 -->
          <id>pitch</id>
          <!--指定仓库地址 -->
          <url>http://192.168.2.126:8081/repository/pitch-release/</url>
        </repository>
      </distributionManagement>
      <build>
        <plugins>
          <!--发布代码Jar插件 -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.7</version>
          </plugin>
          <!--发布源码插件 -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    注意事项:  
     项目的版本一定不能是<version>1.0-SNAPSHOT</version> 不能含有SNAPSHOT
     可以改成<version>1.0-RELEASE</version>或<version>1.0</version>

  2. 打包 
     
    // cmd进入项目路径,打包,mvn deploy:将jar包打入maven私服仓库
    mvn deploy
    
  3. 登录nexus查看
    点击'浏览器图标'-->'maven' 
    这里就打包上传成功了!!!
  • 引入项目
  1. 创建另外一个项目,在pom.xml中配置如下:  
      <dependencies>
        <!--引入刚刚上传到私服的项目依赖-->
        <dependency>
          <groupId>com.basic</groupId>
          <artifactId>nexus_upload</artifactId>
          <version>1.0-RELEASE</version>
        </dependency>
      </dependencies>
    
      <!---配置私服信息-->
      <repositories>
        <repository>
          <id>pitch</id>
          <url>http://192.168.2.126:8081/repository/pitch-release/</url>
        </repository>
      </repositories>
    这里如果能够成功引入刚刚上传到私服nexus_upload项目的依赖,表示成功!!!
    因为2个项目是同一个maven,避免测试下载是本地的缓存,可以先清缓存 
    完成!!!
     
     
     
  •  如何判断文件是否发生改变
     如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同。比较常用的文件hash算法有MD5和SHA-1。
     
     

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值