1. 程式人生 > >jenkins中使用指令碼來節省資源空間和使用shell提取檔名或目錄名的方法

jenkins中使用指令碼來節省資源空間和使用shell提取檔名或目錄名的方法

環境

Linux:5.5
jenkins:2.5

場景

由於公司的專案不斷增多,導致jenkins拉取的專案也就越來越多,專案的程式碼、jar包、資原始檔,佔用了很多磁碟空間;而且有些資源是重複的!

比如專案的jar包就是重複的。

當專案部署到jenkins後,jenkins會給每個專案都建立一個工作目錄,這個工作目錄就是裡面就是我們拉取的專案。

基於上面的情形,我想了下,還可以優化下,就是把jar包統一放到一個目錄下。

目錄結構

jenkins專案程式碼路徑:/home/jenkins/workspace

下圖是裡面的專案名:
這裡寫圖片描述

指令碼

完整的指令碼,很簡單:

cd ${WORKSPACE%/*}
./mvlib.sh ${WORKSPACE##*/}

mvlib.sh的內容就是:

#!/bin/bash
cd $1
mv `find . -path "*/lib/*"  -name "*.jar"` ../lib/

稍微講解下:

${WORKSPACE%/*} 中的WORKSPACEjenkins的內建變數,表示當前專案的工作目錄。而後面的%/*的意思是從右邊開始的第一個/(包括/)開始,後面的內容都刪除掉。
比如:WORKSPACE的路徑是:/home/jenkins/workspace/ggnews-pro
那麼${WORKSPACE%/*},顯示的結果就是:/home/jenkins/workspace

${WORKSPACE##*/}中的##*/表示的是從左邊開始,刪除最後一個/以後的內容,包括/

${WORKSPACE##*/}結果就是:ggnews-pro

總結

這一塊是純指令碼知識。