使用ant自动更新svn,编译,提交svn
最近转行到数据库上面,开始做数据库相关工作.每天需要生成数据库->实体
而且要导入svn.这样重复的劳动,经常让人受不了.
为了方便,研究了一下ant,发现可以使用这个工具,自动上传svn,很是方便
废话不多说,开工啦
1. 从网上下载svnant 包(我的是svn1.6,目前svnant最高只支持1.6了,1.7的就用别的代替吧,我还没研究过),下载地址:
http://subclipse.tigris.org/files/documents/906/49042/svnant-1.3.1.zip
将下载好的svnant 解压将 lib目录下的所有jar复制到ant主目录中的 lib目录下。
2.编写build.xml
要svn task任务可以使用要在build.xml中添加
?
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" />
?代码如下:
?
为了减少修改,我们最好使用properties
我这里命名为build.properties,其实可以随意命名的
将一些东西放在这里,减少修改build.xml
?
##这里放你的项目名称,所谓生成jar名称prop.project.name=ctasdto##ant位置ant.path=D:/apache-ant-1.8.2/lib##服务器位置server.path=D:/webapp-server/apache-tomcat-6.0.20## 你放jar的位置啦dto.path=D:/work/XXX/output## 你的svn路径svn.url=https://XXXX/svn/## SVN用户名svn.user=xiaoxiao## SVN密码svn.passwd=password
?下面的是build.xml内容了
?[因为还需要生成文件,所以使用eclipse自带的编译,这里只打包,上传]
?
<?xml version="1.0" encoding="gbk"?><project name="ctasdto" default="svn" basedir="."> <!-- 加载Property文件中的内容,大部分需要修改的内容都放到Property文件中 --><property resource="build.properties" /><property name="project.name" value="${prop.project.name}"/><property name="src.dir" value="src" /><property name="classes.dir" value="classes"/><property name="javadoc.dir" value="docs"/><property name="obj.dir" value="${prop.dto.path}"/><property name="jar.name" value="${prop.project.name}.jar"/><property name="lib.dir" value="lib"/><property name="svn.url" value="${prop.svn.url}"/><property name="svn.user" value="${prop.svn.user}"/><property name="svn.passwd" value="${prop.svn.passwd}"/><tstamp><format property="buildtime" pattern="yyyy-MM-dd-HH:mm:ss"/></tstamp> <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" /> <!-- 设置svn相关属性 --> <svnSetting id="svn.setting" svnkit="true" username="${svn.user}" password="${svn.passwd}" javahl="false" /> <target name="svn.update" description="更新本地工程,以便后续编译"><echo>更新${obj.dir}中的所有信息</echo><svn refid="svn.setting"> <checkout url="${svn.url}" destPath="${obj.dir}" force="true"/> </svn> </target><target name="clear" depends="svn.update" description="删除DTO文件,之后会重新生成"> <delete file="${obj.dir}\${jar.name}"/></target><target name="copyfile" depends="clear" description="拷贝源文件到classes中"><copy todir="${classes.dir}"> <fileset dir="${src.dir}"> <!--排除列表--> <exclude name="**/**"/> </fileset></copy></target><target name="build" depends="copyfile" description="包装成jar文件" ><jar jarfile="${obj.dir}/${jar.name}" basedir="${classes.dir}" > <!--这里写要加入文件位置--><include name="**/**"/><include name="config/databaseconfig/**"/><manifest><attribute name="Project-Name" value="${project.name}"/><attribute name="Project-Version" value="1.0"/><attribute name="Project-BuildTime" value="${buildtime}"/></manifest></jar></target><target name="svn" depends="svn.update,clear,copyfile,build" description="上传svn"><svn refid="svn.setting"><commit file="output/${jar.name}" message="自动提交最新的dto.jar ${buildtime}"/></svn></target></project>
?
?
?