使用 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


 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值