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