使用 ant 从svn 检出项目, 让测试脱离ide 自行打包,发布测试

来源:互联网 发布:java if else if区别 编辑:程序博客网 时间:2024/05/18 08:09

为了能让 测试人员可以从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 -versioncall ant -versioncall mvn -versionGOTO MENU:MENUECHO.ECHO.=-=-=-=-=-=-=-=-=newnewbank 自动化部署脚本=-=-=-=-=-=-=-=-=ECHO.ECHO.                       1  检出源代码ECHO.ECHO.                       2  更新源代码ECHO.ECHO.                       3  全自动打包 web/micro/cus/financeECHO.ECHO.                       4  编译打包webECHO.ECHO.                       5  编译打包microECHO.ECHO.                       6  编译打包cusECHO.ECHO.                       7  编译打包financeECHO.ECHO.                       8  退   出ECHO.ECHO. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=set /p  ID=if "%id%"=="0"  goto cmd0if "%id%"=="1"  goto cmd1if "%id%"=="2" goto cmd2if "%id%"=="3" goto cmd3if "%id%"=="4" goto cmd4if "%id%"=="5" goto cmd5if "%id%"=="6" goto cmd6if "%id%"=="7" goto cmd7if "%id%"=="8" exit:cmd1echo 检出源代码@call ant checkoutgoto MENU:cmd2echo 更新源代码@call ant updategoto MENU:cmd3echo 全自动打包 web/micro/cus/financeecho 选择打包环境 1,开发 2,测试 3,生产set /p  env=您的选择是:if "%env%" == "1" call mvn clean install -Pdevif "%env%" == "2" call mvn clean install -Pqaif "%env%" == "3" call mvn clean install -Pproductgoto MENU:cmd4echo 编译打包webecho 选择打包环境 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-webif "%env%" == "1" call mvn clean package -Pdevif "%env%" == "2" call mvn clean package -Pqaif "%env%" == "3" call mvn clean package -Pproduct@cd ../../goto MENU:cmd5echo 编译打包microecho 选择打包环境 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-microif "%env%" == "1" call mvn clean package -Pdevif "%env%" == "2" call mvn clean package -Pqaif "%env%" == "3" call mvn clean package -Pproduct@cd ../../goto MENU:cmd6echo 编译打包cusecho 选择打包环境 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-cusif "%env%" == "1" call mvn clean package -Pdevif "%env%" == "2" call mvn clean package -Pqaif "%env%" == "3" call mvn clean package -Pproduct@cd ../../goto MENU:cmd7echo 编译打包financeecho 选择打包环境 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-financeif "%env%" == "1" call mvn clean package -Pdevif "%env%" == "2" call mvn clean package -Pqaif "%env%" == "3" call mvn clean package -Pproduct@cd ../../goto MENU



脚本很简单, 无非是操作 ant 命令或是操作maven 命令 

提供给测试选择 打包环境是使用了 maven 的profiles 参数并在maven 使用插件实现的

具体请移步:


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


 


0 0
原创粉丝点击