nexus批量上传与下载
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                nexus批量上传与下载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                nexus上構件批量上傳及下載方法
-  上傳本地jar包至nexus 
 #!/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#./upload.sh -u admin -p 123 -r http://localhost:8081/repository/repo/while getopts ":r:u:p:" opt; docase $opt inr) REPO_URL="$OPTARG";;u) USERNAME="$OPTARG";;p) PASSWORD="$OPTARG";;esac doneecho "================= ARGS: $REPO_URL:$USERNAME:$PASSWORD ================= ";echosleep 1echo "================= START UPLOAD ================="sleep 1 find . -type f -not -path './upload\.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}/{} ;- 使用腳本前需要注意的地方以及需要傳入的參數描述 upload.sh 腳本的名稱很重要,需要和腳本中過濾的部分保持一致,將此腳本放在需要上傳的本地倉庫的目錄下 -u 上傳所需登陸的用戶名 -p 上傳所需登陸的用戶密碼 -r 目標倉庫地址 
-  下載jar包到本地 
 #!/bin/bash #date:2021/1/4 #author:Javen #description:通過指定NEXUS的Group下載地址下載指定Group上面的全部jar#瀏覽器上看到的html下載頁面的地址 #腳本支持指哪打哪下載目錄的能力,例如只需要下載com.alibaba 包下面的文件,就修改瀏覽器html地址為下面的地址 #NEXUS_GROUP_BROWSE=http://nexus:8081/service/rest/repository/browse/your-group/com/alibaba/ NEXUS_GROUP_BROWSE=http://nexus:8081/service/rest/repository/browse/your-group/#工程里面配置的私服下載地址,這個主要是為了計算出字符串長度,后面創建目錄的時候剪切URL前綴用 NEXUS_GROUP_DOWNLOAD=http://nexus:8081/repository/your-group/#這里加1是為了在后面創建目錄的時候,剪切掉目錄前面的“/”,不然mkdir的時候會認為是根目錄,沒有權限創建文件夾 LENGTH=`expr ${#NEXUS_GROUP_DOWNLOAD} + 1`#echo $LENGTH; #exit;#下載jar function downloadJar() {#輸入jar的url#curl -sO $1#私服是否可以匿名訪問,如果不可以匿名訪問,加密碼 curl -u username:passwd -sO $1printLog "下載jar 方法: "$1mkdirJarDir $1curl -sO $1cd - >&1 >/dev/null }#判斷是否最后一級目錄,如果包含jar文件就認為是最后一級目錄 function isLastDir(){printLog "判斷是否最后一級目錄 $1"local boolLastDir=`echo $1 | egrep 'jar$|jar.sha1|pom|pom.sha1'`if [ -z $boolLastDir ]; thenprintLog "不是最后一級目錄";#sleep 2return 10;elseprintLog "是最后一級目錄";#sleep 2return 0;fi }#日志打印 function printLog() {echo $1 | tee -a javen.log }#在執行下載方法的時候為jar包創建文件存儲路徑 function mkdirJarDir() {printLog "為jar包創建合適的存儲路徑 $1"jarDir=`dirname $1|cut -b$LENGTH-200`;printLog $jarDirmkdir -p $jarDir;cd $jarDir }#遞歸進行下載 function downList() {for var in `curl -s $1 |grep '<a href'|grep -v 'Parent'| sed 's#<a \([^>]*\)>#--SYN--\1--FIN--#g; s/<//g; s/>//g' | sed 's/--SYN--/</g; s/--FIN--[^<]*</></g; s/[^<]*</</; s/--FIN--.*/>/;' | sed "s#<[^>]*href=\([^a-zA-Z>]*[^ >]*\)[^>]*># @\1@#g; s/<[^>]*>//g; s/'//g; s/@/ /g;s/\"/ /g;"`do#getSubDir $i#echo $1;echo $varisLastDir $1$varretvar=$?if [ $retvar -gt 0 ];thenprintLog "繼續下一級目錄";#sleep 1;downList "$1$var"printLog "==================下一個根目錄開始查找======================";echoelsedownloadJar $var#sleep 1fidone }rm -rf javen.log 2>&1 >/dev/null downList $NEXUS_GROUP_BROWSE- 使用腳本前需要修改的參數描述URL示例 NEXUS_GROUP_BROWSE 瀏覽器上使用html看到的倉庫目錄結構的地址,注意最后面的 “/” 不能少 http://nexus:8081/service/rest/repository/browse/your-group/ NEXUS_GROUP_DOWNLOAD 每一個倉庫的地址,注意最后面的 “/” 不能少 http://nexus:8081/repository/your-group/ 
-  將gradle本地庫的目錄結構改為maven本地目錄結構,詳細見 blog #!/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 2while read line doendFlag=`echo $line|grep '.*:$'`if [ -n "$endFlag" ]; thensourceDir=`echo $endFlag | awk -F ':' '{print $1}'`#echo $sourceDirdestDirTmp=`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 -- "$dendfixdestDir=$MyDir$dprefix/`echo $dendfix | awk -F ':' '{print $1}'`else#echo "原 路 徑 -- "$sourceDir/$line#echo "目標路徑 -- "$destDir/$lineif [ ! -d "$destDir" ]; thenecho "directory is not exists; mkdir $destDir"mkdir -p $destDirecho "cp -rp $sourceDir/$line $destDir/$line"cp -rp $sourceDir/$line $destDir/$line;elseecho "cp -rp $sourceDir/$line $destDir/$line"cp -rp $sourceDir/$line $destDir/$line;fi;fi; done < javenJar.txt;echo echo "############# FINISH #############" rm -rf javenJar.txt
總結
以上是生活随笔為你收集整理的nexus批量上传与下载的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: (Microsoft) Visual S
- 下一篇: c语言定时器回调函数的参数,定时器的简单
