利用ant自动从vss下载代码并编译到自动发布
项目做了好久,每次都要手工从vss下载代码,再编译,再发布,觉得好麻烦的,以前项目比较忙就没有时间来研究他,昨天无意在网上看到一个基于wls自 动发布过来,个人认为可以改下为我们所用了,由于自己以前对ant这些东西不是蛮了解,只好先硬着头皮到网上找些这方面的资料看看,我想应该比较容易搞定 的吧。
<target name="all" depends="compile,deploy,backup" description="Build application"/>
<!--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"/>
搞清了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 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:"/>
<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>
<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>
<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>
<target name="clean">
<delete includeEmptyDirs="true">
<fileset dir="${base.dir}" />
</delete>
</target>
<!--Init-->
<target name="init">
<mkdir dir="${base.dir}"/>
</target>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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
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完成VSS自动下载编译部署的脚本
ANT自动更新工具是一种基于Apache Ant构建系统的自动化更新解决方案,它简化了软件开发过程中代码的获取、验证、编译和部署等步骤。Ant是Java开发中常用的一个任务驱动的构建工具,通过XML配置文件来定义和执行各种...
10. 定期备份:VSS支持自动备份功能,以防数据丢失,这对于任何代码管理系统来说都是基本且必要的。 11. 客户端工具:VSS 6.0提供了直观的图形用户界面,使得操作相对简单,降低了学习曲线。 尽管VSS 6.0在当时是...
【描述】"VSS代码仓库转换为GIT代码仓库工具源代码"说明了这是一个实现自动化迁移的工具,可能包含了用于读取VSS数据库、解析VSS项目历史、将这些信息映射到Git提交,并最终创建一个新的Git仓库的代码。这样的工具...
本项目利用Visual Basic(VB)编写了一个工具,实现了对Visual SourceSafe(VSS)的操作,包括签入、牵出和获取代码,自动编译Java源文件为Class字节码,并通过FTP将编译后的文件上传到服务器。这个工具极大地提高了...
在本场景中,"vb控制vss自动发布"意味着我们需要利用VB编写程序来自动化与VSS相关的操作,包括从VSS中获取源代码、编译代码以及执行定时发布的任务。 首先,要实现VB控制VSS,我们需要了解VSS提供的COM接口。VB可以...
这通常涉及到从VSS中检出代码、编译、打包以及部署到目标环境,以此提高开发效率和减少人为错误。 在标签“自动发布源文件”中,我们可以推断这个压缩包可能包含以下内容: 1. VB脚本:使用VB编写的一系列自动化...
本篇文章将详细讲解如何配置VSS,并指导你一步步设置自己的代码管理环境。 **1. 安装Visual SourceSafe** 首先,你需要在你的计算机上安装VSS。下载并运行安装程序,按照向导的提示完成安装过程。确保选择正确的...
在本主题中,我们将深入探讨如何利用VSS进行源代码管理,包括创建数据库、建立Web应用项目以及将Web项目纳入源代码管理的步骤。 一、创建源代码管理数据库 1. 安装与配置VSS:首先确保你的计算机上已经安装了VSS,...
VSS,全称为Visual SourceSafe,是微软提供的一款源代码管理工具,主要用于团队协作开发中的版本控制。在软件开发过程中,源代码管理是至关重要的,它可以帮助开发者追踪代码的修改历史,协同工作,防止冲突,并且...
然而,标题“去除VSS代码管理”表明这个话题涉及到从项目中移除VSS的相关配置和依赖,以便转换到其他版本控制工具或者完全摆脱VSS。 在C#开发环境中,如果一个项目之前使用了VSS进行代码管理,那么在尝试移除VSS时...
VSS会将该文档的副本从数据库中拿到你的工作文件夹(working folder)中,你就可以修改你的文档了。如果其他用户再想对同一文档进行修改,VSS会产生一个信息,告诉他,该文档已被签出(check out),从而避免多人...
VSS 2005 代码管理器 汉化工具
2. 批量从VSS获取并发布:接着,程序会确定需要发布的文件列表,可能是根据日期或者其他业务逻辑来筛选。然后,它会从VSS中检出这些文件到本地,再进一步将这些文件复制到指定的服务器目录,完成发布过程。这一环节...
为了解决这个问题,我们可以利用特定的插件来实现自动备份,比如“vss的自动备份插件”。 这款插件的主要目标就是弥补VSS原生功能的不足,它提供了自动化备份方案,可以定时、定条件地自动备份VSS仓库中的所有文件...
如何实现的VSS自动备份。 如何实现的VSS自动备份。 如何实现VSS自动备份的方法
压缩包中的“VSS2005中文包.rar”可能包含VSS 2005的安装程序,而“VSS_2005.part1.rar”至“VSS_2005.part4.rar”则是分卷压缩文件,需要全部下载并解压以获得完整的安装资源。视频讲解部分可以帮助初学者快速理解...
### PB中使用VSS代码管理知识点详解 #### 一、概述 在软件开发过程中,代码管理是一项非常重要的工作。良好的代码管理不仅可以帮助团队保持代码的整洁性和一致性,还能有效地跟踪和控制版本变化,确保项目的顺利...
Dynamsoft SourceAnywhere for VSS 5.3.1 Professional Server 破解版
一旦数据库创建完成,团队成员可以在各自的开发环境中连接到VSS,将项目导入并进行版本控制。VS2005集成了VSS,使得开发者可以直接在IDE内进行版本控制操作,如添加、删除、修改文件,以及查看历史记录、解决冲突等...