正常在發布項目的時候是將項目打包成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。
第三步:上面個步驟完成,就開始實現功能了。
[root@iZ288xv4ewfZ ~]# cd /usr/local/src #進入src目錄 [root@iZ288xv4ewfZ src]# mkdir maven #創建maven目錄 [root@iZ288xv4ewfZ src]# cd maven #進入maven目錄 [root@iZ288xv4ewfZ maven]# svnco svn://www.minuor.com(ip或者域名)/minuor/trunk./ #將svn指定位置的代碼檢出到當前的目錄下 [root@iZ288xv4ewfZ maven]# ll #查看到當前目錄下有一個或多個,就是trunk下的所有項目 [root@iZ288xv4ewfZ maven]# cd minuor #進入其中一個項目中 [root@iZ288xv4ewfZ minuor]# svn up #表示更新代碼,讓當前目錄下是當前項目的最新代碼 [root@iZ288xv4ewfZ maven]# mvn -U clean install #編譯打包項目,打包結束後或在當前目錄下多出一個target目錄,這個目錄中就存在打包好的war包到這裡代碼的拉取和編譯打包過程就完成了,這裡就可以將war包發布到tomcat服務器中運行了。但是這個不是我們想要的,過程還是挺多的,但是此時我們可以將這些步驟寫在shell腳本中,只要執行一次shell腳本就可以完成了。
shell腳本內容如下:
#!/bin/sh #這是shell腳本的頭,必須要 echo">>>>>>>>>>>>>>>>>>>>>>>>update code" cd /usr/local/src/maven/minuor/ #進入項目代碼所在位置 svn up #執行更新 mvn -U clean install #編譯打包 echo">>>>>>>>>>>>>>>>>>>>>>>>stop tomcat" /minuor/tomcat/minuor/bin/catalina.shstop #這裡是停止tomcat sleep 5s echo">>>>>>>>>>>>>>>>>>>>>>>>move file" rm -rf /minuor/tomcat/minuor/webapps/* #移除tomcat內webapps下的所有內容 cp /usr/local/src/maven/minuor/target/minuor-1.0.0.war/minuor/tomcat/minuor/webapps/ROOT.war #將打包編譯好的項目移動到tomcat內webapps下,並改名為ROOT.war echo">>>>>>>>>>>>>>>>>>>>>>>>start tomcat" /minuor/tomcat/minuor/bin/catalina.shstart #啟動tomcat tailf/minuor/tomcat/minuor/logs/catalina.out #輸出tomcat啟動日志注意:
1、 在使用上面的腳本時請去除後面的注釋
2、 echo表示輸出內容,相當於在控制台打印日志
3、 運行腳本之前給腳本文件755權限,命令如下:
[root@iZ288xv4ewfZ maven]# chmod 755 shell.sh4、 運行腳本文件命令是./shell.sh
5、 如果這個腳本文件是在Windows系統下編輯好上傳到svn下的,請注意文件的類型,防止運行不了。
查看和修改文件類型(假設shell腳本名稱為shell.sh):
[root@iZ288xv4ewfZ maven]# vi shell.sh #查看文件:set ff #看出來的類型是不是非unix類型
:set ff=unix #設置文件類型為unix類型
保存腳本文件,重新運行腳本文件
shell腳本最好放置在maven目錄下,防止出現問題。