使用 ant 從svn 檢出項目, 讓測試脫離ide 自行打包,發佈測試

爲了能讓 測試人員可以從svn上自己下載maven項目源代碼,自己編譯打包, 這裏使用了ant  和批處理 進行實現


我們的思路是  :

maven 已經有了完善的項目構建功能,因此這裏使用maven 對項目編譯和打包, 

而從svn 下載源代碼的功能交給了ant

然後用批處理將這兩個操作貫穿起來, 並提供ui 操作.


maven 具體的配置 打包流程 請參考 我的另一片博客 : http://blog.csdn.net/hcmdy/article/details/50114877


好了,下面進入正題


首先, 確保你的系統 中 jdk / maven / ant  環境安裝配置正確

這裏就不詳細介紹了,請自行百度


先貼出 ant 的腳本


<?xml version="1.0"?>  
<!-- Sample build file used to retrieve svnant's sources -->  
<project name="svn-test" basedir="." default="checkout">  
    
  <!-- all properties -->   
  <property name="lib.dir" value="svnant-1.3.1\lib" />
  <property name="svn.dir" value="svn-source" />  
  <property name="svn.url" value="https://xxxxxxx/project_v1.5" />  
  <property name="svn.user" value="xxxx" />  
  <property name="svn.password" value="xxxx" />  
      
  <!-- path to the svnant libraries. Usually they will be located in ANT_HOME/lib -->  
  <path id="svnant.classpath">  
    <fileset dir="${lib.dir}">  
      <include name="**/*.jar"/>  
    </fileset>  
  </path>    
    
  <!-- load the svn task -->  
  <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" />  
    
  <svnSetting javahl="false" svnkit="true" username="${svn.user}"  
             password="${svn.password}" id="svn.settings"/>  
  
   <!-- 刪除源代碼文件夾 -->  
  <target name="clean-src">  
	<echo message="開始刪除源碼目錄:${svn.dir},請稍後..." />  
	<delete dir="${svn.dir}"/>  
	<echo message="源碼刪除完畢。" />  
  </target>  
  
  <target name="checkout" depends="clean-src"> 
	<echo>開始從 ${svn.url} 檢出源碼,請稍後...</echo>
    <svn refid="svn.settings">
		<checkout url="${svn.url}" revision="HEAD" destPath="${svn.dir}" />  
    </svn>
	<echo>檢出源碼成功</echo>
  </target>
  
   <!-- 從SVN服務器update源代碼 -->  
    <target name="update">  
        <echo message="開始從${svn.url}更新代碼,請稍後..." /> 
		<svn refid="svn.settings">
            <update revision="HEAD" dir="${svn.dir}"/>
		</svn>
        <echo message="從svn服務器更新代碼完成。" />  
    </target>
  
  
</project>  


次腳本中有兩個target 一個是checkout 另一個是update 

而 checkout 依賴領一個targert clean-src

也就是檢出前 ,先刪除已經下載的源代碼


ant 操作svn 需要使用svnant

請將svnant 下載解壓到本地目錄,然後在build.xml 中 的 lib.dir指向svnant/lib目錄

其他的4個參數依次是

源代碼輸出path

svn url

svn 用戶名密碼



打開 cmd 進入到build 所在目錄

使用命令 ant checkout 就可以 檢出最新項目了

使用命令 ant update 就可以更新項目了

ok 搞定了 ant 從svn 下載代碼後我們來編寫 我們的批處理腳本


@echo off                  
ECHO.=-=-=-=-=-=-=-=-=-=-=-=檢測運行環境=-=-=-=-=-=-=-=-=-=-=-=
call java -version
call ant -version
call mvn -version


GOTO MENU

:MENU
ECHO.
ECHO.=-=-=-=-=-=-=-=-=newnewbank 自動化部署腳本=-=-=-=-=-=-=-=-=
ECHO.
ECHO.                       1  檢出源代碼
ECHO.
ECHO.                       2  更新源代碼
ECHO.
ECHO.                       3  全自動打包 web/micro/cus/finance
ECHO.
ECHO.                       4  編譯打包web
ECHO.
ECHO.                       5  編譯打包micro
ECHO.
ECHO.                       6  編譯打包cus
ECHO.
ECHO.                       7  編譯打包finance
ECHO.
ECHO.                       8  退   出
ECHO.
ECHO. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

set /p  ID=
if "%id%"=="0"  goto cmd0

if "%id%"=="1"  goto cmd1

if "%id%"=="2" goto cmd2

if "%id%"=="3" goto cmd3

if "%id%"=="4" goto cmd4

if "%id%"=="5" goto cmd5

if "%id%"=="6" goto cmd6

if "%id%"=="7" goto cmd7

if "%id%"=="8" exit

:cmd1
echo 檢出源代碼
@call ant checkout
goto MENU

:cmd2
echo 更新源代碼
@call ant update
goto MENU

:cmd3
echo 全自動打包 web/micro/cus/finance
echo 選擇打包環境 1,開發 2,測試 3,生產
set /p  env=您的選擇是:
if "%env%" == "1" call mvn clean install -Pdev
if "%env%" == "2" call mvn clean install -Pqa
if "%env%" == "3" call mvn clean install -Pproduct
goto MENU


:cmd4
echo 編譯打包web
echo 選擇打包環境 1,開發 2,測試 3,生產
set /p  env=您的選擇是:

cd svn-source/newnewbank-utils
@call mvn clean install
@cd ../
@cd newnewbank-customer
@call mvn clean install
@cd ../
@cd newnewbank-product
@call mvn clean install
@cd ../../

cd svn-source/newnewbank-web
if "%env%" == "1" call mvn clean package -Pdev
if "%env%" == "2" call mvn clean package -Pqa
if "%env%" == "3" call mvn clean package -Pproduct
@cd ../../
goto MENU

:cmd5
echo 編譯打包micro
echo 選擇打包環境 1,開發 2,測試 3,生產
set /p  env=您的選擇是:

cd svn-source/newnewbank-utils
@call mvn clean install
@cd ../
@cd newnewbank-customer
@call mvn clean install
@cd ../
@cd newnewbank-product
@call mvn clean install
@cd ../../

cd svn-source/newnewbank-micro
if "%env%" == "1" call mvn clean package -Pdev
if "%env%" == "2" call mvn clean package -Pqa
if "%env%" == "3" call mvn clean package -Pproduct
@cd ../../
goto MENU


:cmd6
echo 編譯打包cus
echo 選擇打包環境 1,開發 2,測試 3,生產
set /p  env=您的選擇是:

cd svn-source/newnewbank-utils
@call mvn clean install
@cd ../
@cd newnewbank-customer
@call mvn clean install
@cd ../
@cd newnewbank-product
@call mvn clean install
@cd ../../

cd svn-source/newnewbank-cus
if "%env%" == "1" call mvn clean package -Pdev
if "%env%" == "2" call mvn clean package -Pqa
if "%env%" == "3" call mvn clean package -Pproduct
@cd ../../
goto MENU

:cmd7
echo 編譯打包finance
echo 選擇打包環境 1,開發 2,測試 3,生產
set /p  env=您的選擇是:

cd svn-source/newnewbank-utils
@call mvn clean install
@cd ../
@cd newnewbank-customer
@call mvn clean install
@cd ../
@cd newnewbank-product
@call mvn clean install
@cd ../../

cd svn-source/newnewbank-finance
if "%env%" == "1" call mvn clean package -Pdev
if "%env%" == "2" call mvn clean package -Pqa
if "%env%" == "3" call mvn clean package -Pproduct
@cd ../../
goto MENU



腳本很簡單, 無非是操作 ant 命令或是操作maven 命令 

提供給測試選擇 打包環境是使用了 maven 的profiles 參數並在maven 使用插件實現的

具體請移步:


http://blog.csdn.net/hcmdy/article/details/50114877


 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章