
目录
运行环境:
- Windows-7-Ultimate-x64、Windows-10-BusinessEditions-22h2-x64、CentOS-7.9.2009-x64
- OracleJDK-1.8_u201、OracleJDK-11、OracleJDK-17
- OpenJDK-8、OpenJDK-11+28、OpenJDK-17+35
- IntelliJ IDEA Community Edition 2023.1.3、IntelliJ IDEA Ultimate 2023.1.3
- Maven-3.6.3、Maven-3.8.8
- Sonatype-Nexus-3.87.1-01-win-x86_64
1、统一管理jar包
在什么情况下,需将JAR包进行统一管理?以下对导入到指定Nexus仓库的常见场景进行梳理,包括:
- 上传第三方JAR包:将本地或第三方JAR包迁移到私服,便于团队协作和版本控制。
- 统一依赖管理:避免因本地环境差异导致构建失败,通过集中管理依赖库提升项目一致性。
- 解决依赖冲突:通过Nexus的仓库策略(如:版本控制)避免不同版本的JAR包冲突。
- 提升构建效率:利用Nexus的缓存机制加速构建过程。
- 发布项目构件:将构建的JAR包上传到Nexus的Release或Snapshot仓库。
- 微服务架构开发:在分布式系统中,将服务组件上传到Nexus仓库,供其他服务引用。
这些场景下,将JAR包导入Nexus仓库能有效管理依赖关系,提升开发效率和协作性。
2、Shell脚本
在指定目录下创建脚本文件(如:/opt/script/maven-import.sh)
cd /opt/script
touch maven-import.sh
脚本内容:
#!/bin/bash
# ############################################################
# Subject: 将目录下的jar包导入到指定Nexus仓库
# Author: 狂龙骄子
# Date: 2023.08.15
# Remark: 1、授权执行权限 chmod +x maven-import.sh
# 2、脚本以root用户运行
# 3、调用举例:sh maven-import.sh -u 用户名 -p 密码 -r 仓库地址
# ############################################################
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}/{} ;
附录:

被折叠的 条评论
为什么被折叠?



