1.如何構造一個jenkins部署?
1.1 目標
從git上指定分支下載代碼,打包併發布到指定機器上,啓動。
1.2 實現
如果已有項目,直接copy一份配置即可,修改一下即可使用
如果沒有配置好的,見第二節。
2.配置jenkins
2.1 General
1)描述:項目描述
2)丟棄舊的構建----打勾
策略:Log Rotation
保持最大構建:5
參數化構建過程----打勾
構造參數project就是項目名,後續部署的時候各種文件目錄都使用這個參數。所以要配置好了!!!
git 參數:
手動選擇分支構建,定義了變量branch,對應git分支名。默認master分支。如下圖:
2.2 git配置
主要是下載git代碼的url。 http://username@ip:port/**.git 下面一行是username/password(配置好後是加密的星號)
指定下載分支$branch 就是上面配置的branch參數
如下圖:
2.3 構建maven+最終執行腳本
maven:指定pom.xml 和參數
Post Steps:構建shell. ssh登錄機器後 把構建好的jar包拷貝到指定目錄下,最後運行機器上的啓*.sh腳本啓動java服務。
真實*.sh shell腳本如下:
#!/bin/bash # export JAVA_HOME=/usr/local/jdk1.8.0_221------》導入運行java所需要的環境變量 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar APP_NAME=${1} ------》定義參數:應用名,外部傳入參數$project就是項目名 xms=256 ------》定義參數:啓動內存 xmx=256 ------》定義參數:最大運行內存 APP_DIR=/data/app/${APP_NAME}------》定義參數:應用的絕對路徑 start() { cd ${APP_DIR} -----》進入應用的絕對路徑 pwd /bin/nohup java -jar ${APP_DIR}/${APP_NAME}*.jar -Xms=${xms}m -Xmx=${xmx}m -XX:CompressedClassSpaceSize=128m -XX:+UseConcMarkSweepGC & echo "${APP_NAME} is running !!!!" -----》啓動命令 定義了運行內存,壓縮空間,GC使用CMS ,最後打印 is running } restart() { PID=`ps -ef|grep java|grep ${APP_NAME}|grep -v grep|awk '{print $2}'` if [ "$PID" ]; then ------》1.如果存在進程,強殺了 kill -9 $PID start ------》再啓動 else ------》2.不存在進程,直接啓動 start fi } restart ------》入口