51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 4148|回复: 2
打印 上一主题 下一主题

linux服务器下用ant实现SVN代码更新,部署

[复制链接]
  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    跳转到指定楼层
    1#
    发表于 2011-3-5 20:10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    这段ant脚本主要作用就是:自动从SVN库拉最新的代码,编译、并自动部署到测试服务器。

    其中用到了“antsvn” ,有3个jar包需要配置进去


    <?xml version="1.0" encoding="UTF-8"?>

    <!-- wei.songw 2008.3.19 -->

    <project basedir="." name="smmail" default="auto">
        <!--  all properties are in build.properties -->
        <property file="build.properties" />

        <!--svn本身需要的运行库 -->
        <path id="svnant.lib">
            <pathelement location="${svnjavahl.jar}" />
            <pathelement location="${svnant.jar}" />
            <pathelement location="${svnClientAdapter.jar}" />
        </path>

        <!--java EE 1.4 库 -->
        <path id="javaEE1.4">
            <fileset dir="${javaEE1.4.lib}">
                <include name="**/*.jar" />
            </fileset>
        </path>

        <!--项目的classpath库 -->
        <path id="project.classpath">
            <pathelement location="${build.dir}" />
            <fileset dir="${lib.dir}" />
        </path>

        <!--清理项目任务(干掉下载目录,tomcat原来的部署文件) -->
        <target name="clear">
            <delete dir="${work.space}" />
            <delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}" />
            <delete dir="${tomcat.home}/webapps/${ant.project.name}" />
            <delete dir="${tomcat.home}/webapps/${ant.project.name}.war" />
        </target>

        <!-- load the svn task -->
        <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib" />

        <!--svn同步任务-->
        <target name="svn" depends="clear">
            <mkdir dir="${work.space}"/>
            <svn username="SongWei" password="Song" javahl="false">
                <checkout url="${urlRepos}" destPath="${work.space}" />
            </svn>
        </target>

        <!--编译-->
        <target name="compile" depends="svn" description="======compile project======">
            <echo message="compile==========>${ant.project.name}: ${ant.file}" />
            <mkdir dir="${build.dir}" />
            
            <copy includeemptydirs="false" todir="${build.dir}">
                <fileset dir="${java.source}" excludes="**/*.launch, **/*.java, config/*.*"/>
            </copy>
            <copy includeemptydirs="false" todir="${build.dir}">
                <fileset dir="${java.config}" excludes="**/*.launch, **/*.java"/>
            </copy>
            
            <javac includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build.dir}" source="${source}" target="${target}" encoding="utf-8">
                <src path="${java.source}" />
                <exclude name="config/"/>
                <classpath>
                    <path refid="project.classpath">
                    </path>
                    <path refid="javaEE1.4">
                    </path>
                </classpath>
            </javac>

            <javac debug="true" debuglevel="${debuglevel}" destdir="${build.dir}" source="${source}" target="${target}" encoding="utf-8">
                <src path="${java.config}" />
            </javac>   

        </target>

        <!--压缩,打包-->
        <target name="war" depends="compile" description="======compress j2ee war file======">
            <mkdir dir="${dist.dir}" />
            <!--compress j2ee war file-->
            <war destfile="${war.file}" webxml="${web.dir}/WEB-INF/web.xml">
                <fileset dir="${web.dir}" />
                <classes dir="${build.dir}" />
                <lib dir="${lib.dir}" />
            </war>
        </target>
       
        <!--shutdowntomcat-->
        <target name="shutdowntomcat" description="========shutdowntomcat===========">
            <exec executable="${tomcat.home}/bin/shutdown.sh" failonerror="false"></exec>
            <sleep seconds="10"/>
        </target>
       
        <!--startuptomcat-->
        <target name="startuptomcat" description="========startuptomcat===========">
            <sleep seconds="5"/>
            <exec executable="${tomcat.home}/bin/startup.sh" failonerror="false"></exec>
        </target>

        <!--部署到tomcat下面克-->
        <target name="deploy" depends="war">
            <copy file="${war.file}" todir="${tomcat.home}/webapps" />
        </target>
       
        <!--全自动无敌部署,启动关闭tomcat-->
        <target name="auto" depends="shutdowntomcat,deploy,startuptomcat">
            <echo message="DONE!!!!" />
        </target>
    </project>

    下面是build.xml指定的properties文件,需要和build.xml放在同一个目录下面

    需要指定work.space(svn拉下来代码的存放,已经编译,打包用的临时目录)

    tomcat.home(tomcat服务器的根目录,如果是其他服务器,需要修改对应项)

    ===============================================

    build.version=1.0.0

    svnant.jar=/usr/java/svn/svnant.jar
    svnClientAdapter.jar=/usr/java/svn/svnClientAdapter.jar
    svnjavahl.jar=/usr/java/svn/svnjavahl.jar
    javaEE1.4.lib=/usr/javaEE-1.4

    debuglevel=source,lines
    target=1.6
    source=1.6

    work.space=/home/gmail/workspace
    dist.dir=${work.space}

    build.dir=${work.space}/WebRoot/WEB-INF/classes
    lib.dir=${work.space}/WebRoot/WEB-INF/lib

    java.source=${work.space}/src
    java.config=${work.space}/src/config

    web.dir=${work.space}/WebRoot
    resource.dir=${work.space}/resources

    tomcat.home=/home/gmail/tomcat6
    war.file=${dist.dir}/${ant.project.name}.war

    urlRepos=svn://192.168.1.100/product/SMMAIL/Develop
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2011-3-9 00:01:09 | 只看该作者
    这么好的帖子就没人回啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2011-3-22 11:22:32 | 只看该作者
    学习,试试,谢谢啦~~~
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-28 17:23 , Processed in 0.077388 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表