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>

猜你喜欢

转载自lengjing.iteye.com/blog/1158351