1. 程式人生 > >linux下實現svn自動拉取程式碼併發布

linux下實現svn自動拉取程式碼併發布

正常在釋出專案的時候是將專案打包成war包,並將程式碼上傳到伺服器中,執行伺服器,整個過程較為複雜,在測試過程中會涉及到多次程式碼的修改,重新打包釋出,這樣就很不友好,接下來就簡單介紹一種方法,只要執行一個shell指令碼檔案就能把整個過程全部搞定。

第一步:安裝svn,伺服器中一定要安裝svn,應為在更新程式碼的時候會用到svn相關的命令。具體安裝過程看我的另一篇部落格http://blog.csdn.net/millery22/article/details/51218491。

第二步:安裝maven,同上一步一樣,在執行shell指令碼的過程中需要用到maven相關的命令,因為專案採用的是maven專案,具體安裝過程請參看我的另一篇部落格http://blog.csdn.net/millery22/article/details/51322497。

第三步:上面個步驟完成,就開始實現功能了。

  1. [[email protected] ~]# cd /usr/local/src  #進入src目錄  
  2. [[email protected] src]# mkdir maven  #建立maven目錄  
  3. [[email protected] src]# cd maven  #進入maven目錄  
  4. [[email protected] maven]# svnco svn://www.minuor.com(ip或者域名)/minuor/trunk./  #將svn指定位置的程式碼檢出到當前的目錄下  
  5. [[email protected]
     maven]# ll  #檢視到當前目錄下有一個或多個,就是trunk下的所有專案  
  6. [[email protected] maven]# cd minuor  #進入其中一個專案中  
  7. [[email protected] minuor]# svn up  #表示更新程式碼,讓當前目錄下是當前專案的最新程式碼  
  8. [[email protected] maven]# mvn -U clean install  #編譯打包專案,打包結束後或在當前目錄下多出一個target目錄,這個目錄中就存在打包好的war包  

到這裡程式碼的拉取和編譯打包過程就完成了,這裡就可以將war包釋出到tomcat伺服器中運行了。但是這個不是我們想要的,過程還是挺多的,但是此時我們可以將這些步驟寫在shell指令碼中,只要執行一次shell指令碼就可以完成了。

shell指令碼內容如下:

  1. #!/bin/sh #這是shell指令碼的頭,必須要  
  2. echo">>>>>>>>>>>>>>>>>>>>>>>>update code"  
  3. cd /usr/local/src/maven/minuor/  #進入專案程式碼所在位置  
  4. svn up #執行更新  
  5. mvn -U clean install  #編譯打包  
  6. echo">>>>>>>>>>>>>>>>>>>>>>>>stop tomcat"  
  7. /minuor/tomcat/minuor/bin/catalina.shstop  #這裡是停止tomcat  
  8. sleep 5s  
  9. echo">>>>>>>>>>>>>>>>>>>>>>>>move file"  
  10. rm -rf /minuor/tomcat/minuor/webapps/*  #移除tomcat內webapps下的所有內容  
  11. cp /usr/local/src/maven/minuor/target/minuor-1.0.0.war/minuor/tomcat/minuor/webapps/ROOT.war  #將打包編譯好的專案移動到tomcat內webapps下,並改名為ROOT.war  
  12. echo">>>>>>>>>>>>>>>>>>>>>>>>start tomcat"  
  13. /minuor/tomcat/minuor/bin/catalina.shstart  #啟動tomcat  
  14. tailf/minuor/tomcat/minuor/logs/catalina.out #輸出tomcat啟動日誌  

注意:

1、  在使用上面的指令碼時請去除後面的註釋

2、  echo表示輸出內容,相當於在控制檯列印日誌

3、  執行指令碼之前給指令碼檔案755許可權,命令如下:

  1. [[email protected] maven]# chmod 755 shell.sh  

4、  執行指令碼檔案命令是./shell.sh

5、  如果這個指令碼檔案是在Windows系統下編輯好上傳到svn下的,請注意檔案的型別,防止執行不了。

檢視和修改檔案型別(假設shell指令碼名稱為shell.sh):

  1. [[email protected] maven]# vi shell.sh  #檢視檔案  

:set ff  #看出來的型別是不是非unix型別

:set ff=unix  #設定檔案型別為unix型別

儲存指令碼檔案,重新執行指令碼檔案

shell指令碼最好放置在maven目錄下,防止出現問題。

相關推薦

linux實現svn自動程式碼併發

正常在釋出專案的時候是將專案打包成war包,並將程式碼上傳到伺服器中,執行伺服器,整個過程較為複雜,在測試過程中會涉及到多次程式碼的修改,重新打包釋出,這樣就很不友好,接下來就簡單介紹一種方法,只要執行一個shell指令碼檔案就能把整個過程全部搞定。 第一步:安裝svn

linux實現ssh自動登入遠端伺服器

前言:開發工作中,由於有時需要通過ssh登入遠端伺服器上去,每次都要輸入密碼,密碼很難記,感覺很麻煩,於是上網搜了通過 ssh自動登入遠端伺服器上去,從而免去了每次都要輸入密碼的困擾。 系統說明:本地機器:Redhat遠端機器:Redhat 步驟: A.本地機器需要做的修

linux實現sftp自動登入。

今天幫之前同事寫一個sftp自動上傳的指令碼,因為sftp無法匿名登入,因此使用sftp時,每次都需要輸入伺服器密碼,無法進行自動上傳和下載檔案,其中一種方法可以使用lftp這個就不在詳細介紹了,現在介紹另外一種方法。ssh驗證金鑰的方式(不知道github 是不是這樣)。

linux構建svn伺服器並實現專案自動部署

在Linux系統中搭建svn服務所需要用到的軟體叫做subversion,可以通過yum來進行安裝. svn服務是為了實現協同工作,即一個團隊公眾開發一個專案而不導致程式碼混亂,不會出現今天我修改的程式碼在不通知同事的情況下又被他修改了.

WindowsJenkins自動編譯SVN專案併發Tomcat和Jboss

本文主要記錄一些重要的配置,忽略Jenkins的安裝。配置主要分為三個重要部分: 1、外掛配置            主要涉及3個外掛的安裝。          Deploy to container Plugin:This plugin takes a war/ear

利用 Webhooks 實現程式碼自動

很長時間沒有更新部落格了,前段時間一直都在忙著找工作,最近才穩定下來,後面有機會的話再說說找工作的經歷。 以前做完一個專案,要放到伺服器上執行,最開始使用 Xftp 將程式碼傳上去,中間如果需要修改程式碼,都是在本地除錯完再傳到伺服器,覆蓋原來的檔案生效,非常

ubuntu關於Git版本過高,程式碼的要求

在Ubuntu是更新Git時,會自動更新到2.17。但是在Git大於2.16之後會報 ssh variant 'simple' does not support setting port 錯誤 Git更新語句 sudo add-apt-repository ppa:git-core/ppa

linux操作svn實現根據時間段檢視某個指定使用者提交的記錄

svn log -v -r {2018-9-10}:{2018-9-25} | sed -n '/danni/,/--$/ p' 其中: -r {2018-9-10}:{2018-9-25}:通過-r來指定時間段 -v:表示顯示詳細資訊 sed -n '/danni/,/--$/

Linux實現 MySQL 數據庫定時自動備份

用戶 itl 安裝 centos fin nta 腳本 apach 例子 Linux 下如何實現 MySQL 數據庫定時自動備份? 概述

linux安裝svn服務端,並配置自動更新專案到web目錄

①安裝svn服務端 [[email protected] ~]# yum install svn ②建立服務端倉庫,並設定許可權 [[email protected] ~]# mkdir -p /var/svn/test [[email protect

LinuxTomcat日誌自動定時打包完美實現

一、場景 1、環境 CentOS 7.0,Tomcat 8.0.33 ,(jdk-1.8.0_171) 2、目的 隨著時間推移,tomcat下的日誌檔案catalina.out越來越大,當檢視日誌時效率低下。所以,為了方便日誌的查閱,將catalina.out

Linux 實現 MySQL 資料庫定時自動備份

備份是什麼?           為什麼要備份?   容災方案建設   儲存介質   光碟  磁帶  硬碟&n

在Eclipse上使用SVN,安裝、提交、程式碼、解決衝突等操作---------健康之家

一,什麼是SVN ?    svn是一種版本控制軟體,主要作用就是用於公司的專案管理。這裡先大概說一下svn的使用流程。    首先由專案經理在SVN伺服器上建立SVN倉庫(放專案的地方),併為各個專案成員註冊對應的賬號。在開始一個專案時,一般專案經理

碼雲配置webhooks自動觸發程式碼

webhooks的使用 碼雲和github的鉤子叫webhooks 每次您 push 程式碼後,都會給遠端 HTTP URL 傳送一個 POST 請求 碼雲專案管理頁面的webhooks設定: http://UserID:[email protected]_url/job/project_name/

Git 專案免密程式碼-自動儲存賬號密碼

編輯git檔案 進入git專案根目錄: 1、linux : vi .git/config 於檔案末尾新增內容,並儲存 [credential] helper = store

Linux實現自動部署jar包

Git+ Github + Maven + Linux實現自動部署jar包 #拉取程式碼 echo pull project cd /code/weixin-serv

Linux實現U盤、SD卡自動掛載功能 .

在 Linux中我們經常用到U盤、SD卡的掛載問題,每次都手動掛載或解除安裝非常麻煩,我們可以採取以下方法實現自動掛載或解除安裝U盤、SD卡 1、首先在/etc/init.d/rsC中加入以下語句 echo /sbin/mdev > /proc/sys/kernel/

如何在Eclipse上使用SVN,安裝、提交、程式碼、解決衝突等操作

將SVN整合到Eclpise 第一種方法 第一種方法是通過zip檔案在Eclipse中安裝(本外掛適用Eclipse 4.5以下版本,4.6未驗證.4.7上不能使用) svn外掛(中文版)下載地址:點選開啟連結 在選單欄找到最右的Help,選擇安裝新軟體 :

一鍵完成android從svn程式碼編譯打包

記錄一下這兩天研究的東西-----在windows一鍵完成拉取svn上的安卓原始碼並自動打包。 準備:ant打包工具,android sdk,以及ant拉取程式碼所依賴的一個jar包svnant.jar,放到ant目錄下的lib目錄下即可。 ant是apache的一個編譯工

linux環境實現svn伺服器支援http協議

      經過兩天的努力,svn終於支援http協議來訪問了,在此做個總結,收集一下過程中的錯誤,作為後來人的前車之鑑。 一 前提:        現有的svn已經支援svn協議,並且版本庫、賬戶和許可權已設定好。這些步驟就不說了,詳情請檢視小編另一篇播客()效果如下圖: