TortoiseSVN和ant实现自动化更新和发布
1.配置SVN地址如: svn://localhost/test
2.安装TortoiseSVN 并checkout目录到 E:/www
3. 修改版本库svn/hooks/目录下的 post-commit.tmpl 文件名为 post-commit.bat,并添加以下代码
@echo off
SET REPOS=%1
SET USER=%2
SET SVN="C:/Java/svn/bin/svn.exe"
SET DIR="E:/www"
Set ANT="C:\Java\ant\bin\ant.bat"
(call %SVN% update %DIR% --non-interactive --username admin --password admin)
(call %ANT% -buildfile e:\www\build.xml) #生成classes文件
?
4. windows Ant build.xml文件配置
<?xml version="1.0" encoding="utf-8" ?>?
<project name="web" default="compile">??
??? <property name="classes.dir" value="WebRoot/WEB-INF/classes" />?
??? <property name="src.dir" value="src" />?
??? <property name="lib.dir" value="WebRoot/WEB-INF/lib" />?
??? <property name="tomcat.home" value="C:\Java\tomcat6.0" />?
?????
??? <path id="classpath">?
??????? <fileset dir="${lib.dir}" includes="**/*.jar" />?
??????? <fileset dir="${tomcat.home}/lib" includes="**/*.jar" />?
??? </path>?
?????
??? <target name="clean">?
??????? <delete dir="${classes.dir}" />?
??? </target>?
?????
??? <target name="compile" depends="clean">?
??????? <mkdir dir="${classes.dir}" />?
??????? <javac srcdir="${src.dir}" destdir="${classes.dir}" encoding="UTF-8"?debug="on"> ?
??????????? <classpath refid="classpath" />?
??????? </javac>?
??????? <copy todir="${classes.dir}">?
??????????? <fileset dir="${src.dir}" excludes="**/*.java" />?
??????? </copy>?
??? </target>?
?????
</project>
?
5.linux ant build.xml
?
<?xml version="1.0" encoding="utf-8" ?>
<project name="web" default="compile">
? ? <property environment="env"/>
? ? <property name="classes.dir" value="web/WEB-INF/classes" />
? ? <property name="src.dir" value="src" />
? ? <property name="lib.dir" value="web/WEB-INF/lib" />
? ? <property name="tomcat.home" value="/data/resin-pro-3.1.9" />
? ? <property name="java.home" value="${env.JAVA_HOME}" />
?
? ? <path id="classpath">
? ? ? ? <fileset dir="${lib.dir}" includes="**/*.jar" />
? ? ? ? <fileset dir="${tomcat.home}/lib" includes="**/*.jar" />
? ? </path>
?
? ? <target name="clean">
? ? ? ? <delete dir="${classes.dir}" />
? ? </target>
?
? ? <target name="compile" depends="clean">
? ? ? ? <mkdir dir="${classes.dir}" />
? ? ? ? <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="on" encoding="UTF-8">
? ? ? ? ? ? <classpath refid="classpath" />
? ? ? ? </javac>
? ? ? ? <copy todir="${classes.dir}">
? ? ? ? ? ? <fileset dir="${src.dir}" excludes="**/*.java" />
? ? ? ? </copy>
? ? </target>
</project>
?