搭建内网开发环境(四)|基于nexus搭建maven私服

引言

在前面一篇教程中,通过 docker-compose 快速搭建好了开发环境所需的应用,本文介绍基于 nexus 搭建 maven 私服;虽然本篇教程是基于内网的,但是本文会分别介绍在拥有外网的情况下配置私服和内网的情况下配置私服,并快速上传依赖文件到私服。

外网情况下配置私服代理

  1. 创建 proxy 仓库,类型选择 maven2(proxy),Name 填写 aliyun, **Remote storage 填写 **http://maven.aliyun.com/nexus/content/groups/public/

image.png

  1. 选择Configuration > Repository, 双击 maven-public, 在Group区域将aliyun移到右侧Members, 上移到maven-central的上面, 点击 Save。

image.png

  1. 添加阿里云 maven 镜像代理成功

内网情况下配置私服

  1. 创建 hosted 仓库,输入名称,点击保存
    在这里插入图片描述

  2. 选择Configuration > Repository, 双击 maven-public, 在Group区域将aliyun移到右侧Members, 上移到maven-central的上面, 点击 Save。

image.png

  1. 将本地依赖同步到本地私服中

因为纯内网的情况下无法通过网络获取依赖,所以可先将常用的依赖由本机同步到私服中

  • 编写批量上传脚本 sync_dependency.sh
#!/bin/bash
# copy and run this script to the root of the repository directory containing files
# this script attempts to exclude uploading itself explicitly so the script name is important
# Get command line params
while getopts ":r:u:p:" opt; do
    case $opt in
        r) REPO_URL="$OPTARG"
        ;;
        u) USERNAME="$OPTARG"
        ;;
        p) PASSWORD="$OPTARG"
        ;;
    esac
done

find . -type f -not -path './sync_dependency\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
  • 执行脚本进行上传

将脚本放在本地 maven 仓库的同级目录下,执行命令开始批量上传
在这里插入图片描述

执行命令:
./sync_dependency.sh -u nexus用户名 -p nexus密码 -r http://10.0.0.3:8081/repository/geenkyous-repo/
出现下面页面,则已经在开始上传
image.png
也可查看仓库数量变化,来判断上传进度。
在这里插入图片描述

在Maven项目中使用私服

  1. 配置maven setting.xml

在maven的setting.xml中添加私服的认证信息,用户名/密码换成自己设置的

<server>
      <id>nexus-releases</id>
      <username>admin</username>
      <password>admin</password>
    </server>
    <server>
      <id>nexus-snapshots</id>
      <username>admin</username>
      <password>admin</password>
    </server>
  1. 在项目的pom.xml文件中添加repositories信息,配置如下
<repositories>
        <repository>
            <id>nexus</id>
            <name>Nexus Repository</name>
            <url>http://127.0.0.1:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>nexus-releases</name>
            <url>http://127.0.0.1:8081/repository/maven-releases</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>nexus-snapshots</name>
            <url>http://127.0.0.1:8081/repository/maven-snapshots</url>
        </snapshotRepository>
    </distributionManagement>

repositorie中配置私服的远程仓库地址
distributionManagement中配置打包发布上传的仓库信息,这里需要注意repository里的id需要和maven中setting.xml里的server id名称保持一致

  1. 将项目打包发布到私服

在IDEA中选择右侧的 Lifecycle -> deploy,如果verison中带有SNAPSHOT,那么jar将会上传到SNAPSHOT仓库中,否则上传到RELEASES仓库中。

结语

至此,在 nexus 中搭建 maven 私服成功,在本文中既介绍分别在外网和纯内网的环境下配置私服,也介绍在 maven 项目中如果使用私服。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值