maven本地仓库同步上传到nexus远程仓库

场景
        合作伙伴的项目,仅提供部分应用层源码,底层代码不提供,只给提供jar包使用。为了方便二次开发应用,计划吧他的jar包放到本地nexus库上使用。

第一步:创建自己远程仓库(也可以使用现有的),需要使用管理登录

maven本地仓库同步上传到nexus远程仓库_第1张图片
选择maven2(hosted)方式

 maven本地仓库同步上传到nexus远程仓库_第2张图片

创建仓库配置

maven本地仓库同步上传到nexus远程仓库_第3张图片
查看仓库信息

 maven本地仓库同步上传到nexus远程仓库_第4张图片

复制仓库路径,上传时需要用

 maven本地仓库同步上传到nexus远程仓库_第5张图片

 第二步:准备上传组件包

需要用到shell脚本,建议在linux环境下搞。

创建操作目录
sudo mkdir /opt/maven-repo
 
cd /opt/maven-repo
将需要上传的组件包拷贝到操作目录中.注意,脚本是吧默认目录名作为group使用,要和代码配置的一样,否则代码的pom文件要改。
#创建根目录
sudo mkdir com
 maven本地仓库同步上传到nexus远程仓库_第6张图片
#上传本地仓库组件
maven本地仓库同步上传到nexus远程仓库_第7张图片
写脚本脚本

注意脚本目录在maven-repo下
vim mavenimport.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 './mavenimport\.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本地仓库同步上传到nexus远程仓库_第8张图片

执行上传脚本
# -u 用户名
# -p 密码
# -r 远程仓库路径

./mavenimport.sh -u admin -p Safe@123 -r http://127.0.0.1:9091/repository/cmiot/

这里服务器和nexus在一起,所以直接用127内网传比较快。
上传成功 

maven本地仓库同步上传到nexus远程仓库_第9张图片

 maven本地仓库同步上传到nexus远程仓库_第10张图片

 然后就可以用了。用的时候记得配置maven的setting。

你可能感兴趣的:(服务器运维,maven,java,开发语言,nexus)