shell将gradle本地库的目录结构改为maven本地目录结构

将gradle本地仓库的目录结构更改为maven本地仓库的目录结构

  • 在项目开发过程中,我们需要将本地gradle仓库中的jar包上传到另外一个nexus上面,但是上传过程中发现我们的目录结构与nexus上面的目录结构不相符,不能进行批量上传。
    • 这个是gradle的目录结构
    • 这个是maven的目录结构
  • 从上面两张图片可以看出gradle在最外面的一层目录是 com.google.code.findbugs 这种形式,需要将其目录结构转换为 com/google/code/findbugs 这种目录结构。因此写了一下脚本来完成这件事情。将下面的脚本放在gradle的仓库下面与 com.google.code.findbugs 同级目录。
#!/bin/bash
#整理jar
#author:Javen
#date:20200907


#cd ..;
MyDir=javen/
rm -rf  javen* 2>&1 >/dev/null
mkdir -p $MyDir;

ls -R * | grep -v '.*/$'| grep -v javen |egrep -B1 '.jar|.pom'|grep -v "\-\-"|tee  javenJar.txt;

echo;sleep 1
echo '################## START ####################'
echo;sleep 2



while read line
do
	endFlag=`echo $line|grep '.*:$'`
	if [ -n "$endFlag" ]; then
		sourceDir=`echo $endFlag | awk -F ':' '{print $1}'`
		#echo $sourceDir

		destDirTmp=`dirname $line`":"
		dprefix=`echo $destDirTmp| awk -F '/' '{print $1}'|sed 's#\.#/#g'`
		dendfix=`echo $destDirTmp| awk -F '/' '{print $2"/"$3"/"$4"/"$5"/"$6"/"$7"/"$8"/"$9}'`
		
		#echo "destDirTmp -- " $destDirTmp 
		#echo "dprefix --  "$dprefix
		#echo "dendfix --  "$dendfix
		destDir=$MyDir$dprefix/`echo $dendfix | awk -F ':' '{print $1}'`
	else
		#echo "原 路 径   --   "$sourceDir/$line
		#echo "目标路径   --   "$destDir/$line

		if [ ! -d "$destDir" ]; then
			echo "directory is not exists; mkdir $destDir"
			
			mkdir -p $destDir
			echo "cp -rp $sourceDir/$line $destDir/$line"
			cp -rp $sourceDir/$line $destDir/$line;
		else
			echo "cp -rp $sourceDir/$line $destDir/$line"
			cp -rp $sourceDir/$line $destDir/$line;

		fi;
	fi;
done < javenJar.txt;

echo
echo "############# FINISH #############"
rm -rf javenJar.txt
  • 输出的结果目录会产生在 javen 这个目录下面,可以看到已经整理好的jar包,与maven本地仓库的目录结构一致。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值