linux下使用git和gradle編譯項目,編寫簡單的自動發布指令碼__linux

來源:互聯網
上載者:User

[TOCM] 安裝git和部署公開金鑰 安裝 sudo yum install git Linux建立SSH密鑰
ssh-keygen -t rsa -C “xxxxx@xxxxx.com” #使用郵箱建立 查看公開金鑰cat ~/.ssh/id_rsa.pub 執行以下命令,會把公開金鑰添加到git@osc上
ssh -T git@git.oschina.net
但是有可能會出現 Permission denied (publickey). 情況(暫時不知道是為什麼),就只能手動把公開金鑰添加到git@osc上面了 同步github到本地

複製項目到本地git clone git://github.com:xxxx/test.git ##以gitreadonly方式複製到本地,只可以讀git clone git@github.com:xxx/test.git  ##以SSH方式複製到本地,可以讀寫,會按照項目名預設初始化倉庫git clone https://github.com/xxx/test.git ##以https方式複製到本地,可以讀寫git fetch git@github.com:xxx/xxx.git  ##擷取到本地但不合并git pull git@github.com:xxx/xxx.git ##擷取併合並內容到本地,這裡要進入到項目裡面去執行比如我要同步master分支到本地git pull git@git.oschina.net:youname/xx.git master master
安裝gradle 安裝JDK,並配置JAVA_HOME環境變數。因為Gradle是用Groovy編寫的,而Groovy基於JAVA。另外,Java版本要不小於1.5. 下載。地址是:http://www.gradle.org/downloads。在這裡下載你要的版本。 解壓。如果你下載的是gradle-xx-all.zip的完整包,它會有以下內容:
二進位檔案 使用者手冊(包括PDF和HTML兩種版本) DSL參考指南 API手冊(包括Javadoc和Groovydoc) 範例 原始碼,僅供參考使用。

4,配置環境變數。配置GRADLE_HOME到你的gradle根目錄當中,然後把%GRADLE_HOME%/bin(linux或mac的是$GRADLE_HOME/bin)加到PATH的環境變數。

 vim /etc/profile    #在檔案最後添加    export JAVA_HOME=/home/hadoop/app/jdk1.7.0_65    export GRADLE_HOME=/home/hadoop/app/gradle    export PATH=$PATH:$JAVA_HOME/bin:$GRADLE_HOME/bin    -------------------    #重新整理配置    source /etc/profile

配置完成之後,運行gradle -v,檢查一下是否安裝無誤。如果安裝正確,它會列印出Gradle的版本資訊,包括它的構建資訊,Groovy, Ant, Ivy, 當前JVM和當前系統的版本資訊。 使用gradle編譯項目

# 先構建整個項目,需要下載lib依賴等gradle build -x test# 在打war包,編譯好的項目預設在 web模組下的build/libs 下面gradle war -x test

有能力的還能編寫gradle指令碼自動打包然後複製刪除檔案 編寫linux指令碼 自動打包發布

echo -e "mrcode自動化部署指令碼"PROJECT_NAME="you-0.1-SNAPSHOT" #名稱 預設用該名稱作為發布項目的上級目錄DIR_RELEASE_WEBAPPS=/xxxxx/release/webapps # 項目發布目錄DIR_RELEASE_BACKUP_PROJECT=/xxxxx/release/backup/$PROJECT_NAME #項目備份DIR_RELEASE_TEMP_PROJECT=/xxxxx/release/temp/$PROJECT_NAME #發布前對項目做的臨時操作目錄DIR_GIT_PROJECT=/xxxxx/git/gitosc/you #項目源碼所在目錄FILE_GIT_PROJECT_WAR=/xxxxx/git/gitosc/xxx/you/build/libs/$PROJECT_NAME.war # 編譯之後war包所在的路徑DIR_TOMCAT=/xxxxx/apache-tomcat-7.0.65  #tomcat根目錄echo "============ 處理給定工作目錄是否存在,不存在則建立"if [ -d "$DIR_RELEASE_WEBAPPS" ];        then                echo $DIR_RELEASE_WEBAPPS "目錄存已在"        else                mkdir -p $DIR_RELEASE_WEBAPPSfiif [ -d "$DIR_RELEASE_BACKUP_PROJECT" ];        then                echo $DIR_RELEASE_BACKUP_PROJECT "目錄存已在"        else                mkdir -p $DIR_RELEASE_BACKUP_PROJECTfiif [ -d "$DIR_RELEASE_TEMP_PROJECT" ];        then                echo $DIR_RELEASE_TEMP_PROJECT "目錄存已在"        else                mkdir -p $DIR_RELEASE_TEMP_PROJECTfiecho "============ pull 同步更新項目"cd $DIR_GIT_PROJECTgit pull git@git.oschina.net:youname/you.git master mastergradle war -x testecho "============ 準備專案檔"  cp -u $FILE_GIT_PROJECT_WAR $DIR_RELEASE_TEMP_PROJECTcd $DIR_RELEASE_TEMP_PROJECTjar -xvf $PROJECT_NAME.war # 1.war包解壓rm -rf $PROJECT_NAME.warwhile [ 0 ]; do    echo -e "============ 是否需要停止tomcat服務。並將執行以下幾個步驟:"    echo -e "   1.停止本機所有的tomcat服務 "    echo -e "   2.將舊的項目目錄備份 "    echo -e "   3.copy專案檔到發布目錄"    echo -e "   4.啟動tomcat服務"    read -p "請決策是否自動化以上步驟(y/n):" isAutoSv    if [ "$isAutoSv" = "n" ]; then exit 0    elif [ "$isAutoSv" = "y" ]; then break    fidoneecho -e "====== 1. 停止tomcat服務..."$DIR_TOMCAT/bin/shutdown.shps -ef | grep root | grep tomcat | grep -v grep | cut -c 9-15 | xargs kill -s 9echo -e "====== 2. 備份舊的版本目錄..."mv $DIR_RELEASE_WEBAPPS/$PROJECT_NAME  $DIR_RELEASE_BACKUP_PROJECT/$(date +%Y%m%d%H%M)echo -e "====== 3. copy專案檔到發布目錄..."mv $DIR_RELEASE_TEMP_PROJECT $DIR_RELEASE_WEBAPPSecho -e "====== 4. 啟動tomcat服務"$DIR_TOMCAT/bin/startup.sh

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.