最近转行到数据库上面,开始做数据库相关工作.每天需要生成数据库->实体
而且要导入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>