`
cuishuangjia
  • 浏览: 158017 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

利用ant自动从vss下载代码并编译到自动发布

vss 
阅读更多

 

利用ant自动从vss下载代码并编译到自动发布

分类: 计算机相关东西 1540人阅读 评论 (0) 收藏 举报
 项目做了好久,每次都要手工从vss下载代码,再编译,再发布,觉得好麻烦的,以前项目比较忙就没有时间来研究他,昨天无意在网上看到一个基于wls自 动发布过来,个人认为可以改下为我们所用了,由于自己以前对ant这些东西不是蛮了解,只好先硬着头皮到网上找些这方面的资料看看,我想应该比较容易搞定 的吧。
      搞清了ant的一些基本概率,就看看别人写的bulid.xml吧,再改改,试一试,唉,报错,再找到报错的日志,可能是配置文件中有汉字的缘故吧,删除这些注释的东西,再运行下ant,搞定!(基于tomcat发布的)
     如下是bulid.xml的详细列表;
    <project name="oa" basedir="." default="all">
<!--path mapping-->
<property file="build.properties"/>
<property name="name" value="OA"/>
<property name="base.dir" value="checkout/${name}/oa-web-app"/>
<property name="src.dir" value="${base.dir}/src"/>
<property name="bin.dir" value="${base.dir}/war/WEB-INF/classes"/>
<property name="lib.dir" value="${base.dir}/war/WEB-INF/lib"/>
<property name="dist.dir" value="D:/oaWorkspace/jakarta-tomcat-5.5.9/webapps/${name}"/>
<property name="hist.dir" value="history/${name}"/>
<property name="appserver.home" value="D:/oaWorkspace/jakarta-tomcat-5.5.9"/>
 
<property name="vss.ssdir" value="D:/oaWorkspace/vss/win32"/>
<property name="vss.svrdir" value="H:"/>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask">       
 <classpath>
  <path location="${appserver.home}/server/lib/catalina-ant.jar"/>       
 </classpath>   
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">       
 <classpath>
  <path location="${appserver.home}/server/lib/catalina-ant.jar"/>       
 </classpath>   
</taskdef>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask">       
 <classpath>
  <path location="${appserver.home}/server/lib/catalina-ant.jar"/>       
 </classpath>   
</taskdef>
<path id="appClassPath">
 <pathelement path="${java.class.path}"/>
 <fileset dir="${lib.dir}">
  <include name="*.jar"/>
 </fileset>
</path>
<target name="getVssCode">
<tstamp>
<format property="TODAY" pattern="yyyy-MM-dd" />
</tstamp>
<echo message="Getting latest source codes from: ${TODAY}" />
<echo message="${vss.svrdir}" />
<vssget vsspath="/E.OA系统产品/5.开发库/1.代码库/1.源代码/OA/oa-web-app" localpath="${base.dir}" login="name,password"
ssdir="${vss.ssdir}" serverPath="${vss.svrdir}" autoresponse="Y" recursive="true" quiet="true" />
</target>

<target name="all" depends="compile,deploy,backup" description="Build application"/>
<!--Clean-->
<target name="clean">
 <delete includeEmptyDirs="true">
  <fileset dir="${base.dir}" />
 </delete>
</target>
<!--Init-->
<target name="init">
 <mkdir dir="${base.dir}"/>
</target>
<!--Compile-->
<target name="compile">
 <javac srcdir="${src.dir}" destdir="${bin.dir}" fork="on" optimize="off" deprecation="on" memoryMaximumSize="128m">
  <classpath refid="appClassPath"/>
 </javac>
    <native2ascii src="${src.dir}" dest="${bin.dir}"
            includes="*_zh_CN.properties" excludes="*displaytag_zh_CN.properties" encoding="GB2312" />
    <native2ascii src="${src.dir}" dest="${bin.dir}"
            includes="*displaytag_zh_CN.properties" encoding="UTF-8" />       
    <copy todir="${bin.dir}">
  <fileset dir="${src.dir}">
   <exclude name="**/*.java"/>
   <include name="**/*.xml"/>
  </fileset>
 </copy>
 <copy todir="${bin.dir}">
  <fileset dir="${src.dir}">
                 <exclude name="*_zh_CN.properties"/>
                 <include name="*.properties"/>
         </fileset>
 </copy>
</target>
<!--Deploy-->
<target name="deploy">
    <delete includeEmptyDirs="true">
        <fileset dir="${dist.dir}/WEB-INF/classes"/>
    </delete>
    <copy todir="${dist.dir}">
  <fileset dir="${base.dir}/war"/>
 </copy>
</target>

<!--Backup-->
<target name="backup">
    <tstamp/>
    <mkdir dir="${hist.dir}/${TODAY}"/>
    <mkdir dir="${hist.dir}/${TODAY}/coding"/>
    <mkdir dir="${hist.dir}/${TODAY}/deploy"/>
    <mkdir dir="${hist.dir}/${TODAY}/db"/>
    <copy todir="${hist.dir}/${TODAY}/coding">
  <fileset dir="${base.dir}"/>
 </copy>
    <copy todir="${hist.dir}/${TODAY}/deploy">
  <fileset dir="${dist.dir}"/>
 </copy>
</target>
<target name="stop" description="Stop application in Tomcat">       
 <stop url="${tomcat.manager.url}"                
  username="${tomcat.manager.username}"                
  password="${tomcat.manager.password}"                
  path="/${name}"/>   
</target>
<target name="reload" description="Reload application in Tomcat">       
 <reload url="${tomcat.manager.url}"                
  username="${tomcat.manager.username}"                
  password="${tomcat.manager.password}"                
  path="/${name}"/>   
</target>
<target name="start" description="start application in Tomcat">       
 <start url="${tomcat.manager.url}"                
  username="${tomcat.manager.username}"                
  password="${tomcat.manager.password}"                
  path="/${name}"/>   
</target>
</project>
少了一个文件build.properties的内容
# Ant properties for building the spring
user.home=D:/oaWorkspace
appappserver.home=${user.home}/jakarta-tomcat-5.5.9
deploy.path=${appserver.home}/webapps
tomcat.manager.url=http://127.0.0.1/manager
tomcat.manager.username=manager
tomcat.manager.password=tomcat
分享到:
评论

相关推荐

    ANT自动下载编译部署脚本

    用ant完成VSS自动下载编译部署的脚本

    ANT自动更新工具

    ANT自动更新工具是一种基于Apache Ant构建系统的自动化更新解决方案,它简化了软件开发过程中代码的获取、验证、编译和部署等步骤。Ant是Java开发中常用的一个任务驱动的构建工具,通过XML配置文件来定义和执行各种...

    vb+vss+读取配置文件+cmd命令+操作文件夹

    vb+vss+读取配置文件+cmd命令+操作文件夹。 vb 控制vss,下载java文件到配置文件定义的路径下,再调用ant命令编译java文件为class,定时发布class文件到相应的开发环境,测试环境等。

    DailyBuild全攻略

    CruiseControl.NET会监控Visual Source Safe(VSS)中的文件变更,一旦检测到变化,就会调用NAnt将VSS中的更新代码复制到本地并进行编译,生成DLL或EXE文件。接着,NAnt将编译后的程序集传递给NUnit进行单元测试,并...

    持续集成实践之CruiseContorl

    持续集成(Continuous Integration,简称CI)是一种软件开发实践,旨在通过频繁地合并所有开发者的工作副本到一个共享的主分支,并通过自动化的构建(包括编译、发布、自动化测试等)来验证新的提交是否正确,以此来...

    持续集成CC入门、学习

    2. 解压并将`lib`目录下的所有JAR文件复制到`ANT_HOME\lib`目录下。 3. 如果需要集成到Eclipse中,则还需要将这些JAR文件添加到Eclipse的构建路径中。 **1.3.3 安装VisualSVN Server** 1. 下载并安装VisualSVN ...

    Eclipse教程_beming.pdf

    Eclipse提供了图形化设计器,允许开发者通过拖放控件的方式构建界面,并支持代码自动生成和实时预览,从而简化了GUI应用的开发过程。 ### Eclipse的J2ME程序开发 J2ME(Java 2 Platform Micro Edition)是Java平台...

Global site tag (gtag.js) - Google Analytics