为了能让 测试人员可以从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