一个用于部署应用的ant脚本

没有刚工作的时候写的那个漂亮,不过总算完成一样的事情了。
能够在本地分资源种类打包,然后上传到服务器,解压,重启服务器。

<project name="eCourse" default="deploy">

    <property name="prj.base.dir" location="../../..">
    </property>

    <property name="keyfile.path" location="/Users/wangds/.ssh/id_rsa">
    </property>

    <target name="pkgHome">
        <zip basedir="${prj.base.dir}/src/main/apphome" destfile="${prj.base.dir}/target/apphome.zip">
        </zip>
    </target>

    <target name="deployHome" depends="pkgHome">
        <scp keyfile="${keyfile.path}" file="${prj.base.dir}/target/apphome.zip" remoteTodir="root@wangds.net:/opt/apphome/ecourse">
        </scp>
        <sshexec command="mkdir -p /opt/apphome/ecourse/backup" host="wangds.net" username="root" keyfile="${keyfile.path}" />
        <sshexec command="cp /opt/apphome/ecourse/apphome.zip /opt/apphome/ecourse/backup/apphome_`date +%Y%m%d%H%M`.zip" host="wangds.net" username="root" keyfile="${keyfile.path}" />
        <sshexec command="unzip -uo /opt/apphome/ecourse/apphome.zip -d /opt/apphome/ecourse" host="wangds.net" username="root" keyfile="${keyfile.path}" />
        <sshexec command="rm -rf /opt/apphome/ecourse/apphome.zip" host="wangds.net" username="root" keyfile="${keyfile.path}" />
    </target>


    <target name="pkgWarPatch">


        <exec dir="${prj.base.dir}" executable="bash" append="no">
            <arg line="-c 'find ./target/eCourse -newer ecourse.tm -type f -exec dirname ./patch/{} \;|xargs mkdir -p '" />
        </exec>

        <exec dir="${prj.base.dir}" executable="bash" append="no">
              <arg line="-c 'find ./target/eCourse -newer ecourse.tm -type f -exec cp {} ./patch/{} \;'"/>
        </exec>

        <exec dir="${prj.base.dir}/patch/target/eCourse" executable="bash" append="no">
              <arg line="-c 'jar -cvf ../../eCourse.war ./WEB-INF'"/>
        </exec>

        <exec dir="${prj.base.dir}/patch/target/" executable="bash" append="no">
                      <arg line="-c 'rm -rf ./eCourse/WEB-INF'"/>
        </exec>

        <exec dir="${prj.base.dir}/patch/target/eCourse" executable="bash" append="no">
                      <arg line="-c 'tar -cvzf ../../eCourse.tgz .'"/>
        </exec>

    </target>

    <target name="deployWarPatch" depends="pkgWarPatch">
            <scp keyfile="${keyfile.path}" file="${prj.base.dir}/patch/eCourse.war" remoteTodir="root@wangds.net:/opt/apphome/ecourse"/>
            <scp keyfile="${keyfile.path}" file="${prj.base.dir}/patch/eCourse.tgz" remoteTodir="root@wangds.net:/opt/apphome/ecourse"/>
            <sshexec command="mkdir -p /opt/apphome/ecourse/backup" host="wangds.net" username="root" keyfile="${keyfile.path}" />
            <sshexec command="cp /opt/apphome/ecourse/eCourse.war /opt/apphome/ecourse/backup/eCourse_`date +%Y%m%d%H%M`.war" host="wangds.net" username="root" keyfile="${keyfile.path}" />
            <sshexec command="cp /opt/apphome/ecourse/eCourse.tgz /opt/apphome/ecourse/backup/eCourse_`date +%Y%m%d%H%M`.tgz" host="wangds.net" username="root" keyfile="${keyfile.path}" />
            <sshexec command="tar -xvzf /opt/apphome/ecourse/eCourse.tgz -C /opt/apphome/ecourse/www" host="wangds.net" username="root" keyfile="${keyfile.path}" />
            <sshexec command="unzip -uo /opt/apphome/ecourse/eCourse.war -d /var/lib/tomcat6/webapps/eCourse/" host="wangds.net" username="root" keyfile="${keyfile.path}" />
            <sshexec command="rm -rf /opt/apphome/ecourse/eCourse.war" host="wangds.net" username="root" keyfile="${keyfile.path}" />
            <sshexec command="rm -rf /opt/apphome/ecourse/eCourse.tgz" host="wangds.net" username="root" keyfile="${keyfile.path}" />
    </target>

    <target name="clean">
        <exec dir="${prj.base.dir}" executable="bash" append="no">
                            <arg line="-c 'echo abc>ecourse.tm'"/>
        </exec>
        <delete dir="${prj.base.dir}/patch"></delete>
    </target>

    <target name="deploy" depends="deployHome,deployWarPatch,clean">
        <sshexec command="service tomcat6 restart" host="wangds.net" username="root" keyfile="${keyfile.path}" />
    </target>


</project>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值