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

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

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


选择maven2(hosted)方式

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

创建仓库配置

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


查看仓库信息

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

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


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

第二步:准备上传组件包

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

创建操作目录

sudo mkdir /opt/maven-repo


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


cd /opt/maven-repo

将需要上传的组件包拷贝到操作目录中.注意,脚本是吧默认目录名作为group使用,要和代码配置的一样,否则代码的pom文件要改。

#创建根目录

sudo mkdir com


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


#上传本地仓库组件

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


写脚本脚本

注意脚本目录在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远程仓库_java_09

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

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

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

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


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

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