爲了能讓 測試人員可以從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>
而 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