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

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

  • 在项目开发过程中,我们需要将本地gradle仓库中的jar包上传到另外一个nexus上面,但是上传过程中发现我们的目录结构与nexus上面的目录结构不相符,不能进行批量上传。
    • shell将gradle本地库的目录结构改为maven本地目录结构_第1张图片
    • shell将gradle本地库的目录结构改为maven本地目录结构_第2张图片
  • 从上面两张图片可以看出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本地仓库的目录结构一致。

你可能感兴趣的:(运维和工具)