专栏首页IT笔记JAVAWEB项目自动打包部署脚本(SVN+ANT)

JAVAWEB项目自动打包部署脚本(SVN+ANT)

acts_meeting_build.xml 脚本:

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

<project name="acts_meeting" basedir="/home/svnData/acts_meeting" default="all">
    <property name="tomcat" value="tomcat8_app"/>
    <property file="/home/svnPublish/build.properties" />
    <property name="webapp" value="acts_meeting" />
    <!--svnant支持库-->
    <path id="svnant.lib">
        <pathelement location="${svnant.jar}" />
        <pathelement location="${svnant.jar}" />
        <pathelement location="${svnClientAdapter.jar}" />
    </path>
    <!-- load the svn task -->
    <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib" />

    <!--svn同步任务-->
    <target name="svn">
        <svn username="${svn.username}" password="${svn.password}" javahl="false">
            <!-- 检出代码 这里使用 export 不是checkout 二者区别 checkout会svn相关信息文件检出,export只是检出最新的文件-->
            <checkout  url="svn://192.168.1.180/acts_sign/trunk/${webapp}" destPath="${svn.home}/${webapp}" />
        </svn>
    </target>
    <!--项目打包-->
    <path id="classpath">
        <fileset dir="./WebRoot/WEB-INF/lib">
            <include name="**/*.jar" />
        </fileset>
    </path>

    <target name="prepare" description="prepare ">
        <mkdir dir="dist/tmp" />
        <mkdir dir="dist/module" />
        <mkdir dir="dist/war" />
    </target>

    <target name="jar-web" description="web jar">
        <delete file="dist/war/${webapp}-web.jar" />
        <echo message="开始编译项目源码" />
        <javac srcdir="src/java" includes="com/acts/web/**/*.*,com/acts/web/**/**/*.*" debug="true" fork="yes" destdir="dist/tmp" classpathref="classpath" encoding="UTF-8" includeantruntime="on"/>
        <jar destfile="dist/war/${webapp}-web.jar" update="true">
            <fileset dir="dist/tmp" includes="**/*.*" />
        </jar>
        <echo message="开始拷贝资源文件" />
        <copy todir="WebRoot/WEB-INF/classes">
            <fileset dir="src/java" includes="com/acts/web/**/*.xml*,com/acts/web/**/**/*.xml*">
            </fileset>
            <fileset dir="src/resource" includes="**/*.*">
            </fileset>
        </copy>
    </target>

    <target name="war" description="war ${webapp}" depends="jar-web">
        
        <echo message="开始打包" />
        <delete file="dist/war/${webapp}.war" />
        <copy todir="WebRoot/WEB-INF/lib">
            <fileset dir="dist/war"/>
        </copy>
        <war warfile="dist/war/${webapp}.war"
                includes="**/*.*"
                excludes="WEB-INF/classes/**/*.class"
                webxml="WebRoot/WEB-INF/web.xml" 
                update="true" 
                basedir="WebRoot"/>
        
        <echo message="删除临时文件" />
        <delete file="WebRoot/WEB-INF/lib/${webapp}-web.jar" />    
        <delete file="WebRoot/WEB-INF/classes" />
    </target>
    <echo message="开始部署" />
    <target name="publish"> 
         <exec executable="/home/svnPublish/publish.sh" failonerror="true">
              <arg value="/home/apache-tomcat/${tomcat}/"/>
              <arg value="${webapp}"/>
         </exec> 
    </target> 
    <target name="all"  depends="svn,prepare, jar-web, war,publish">
    </target>
</project>

build.properties 配置:

build.version=1.0.0
svnant.jar=/usr/local/apache-ant-1.9.2/lib/svnant.jar
svnClientAdapter.jar=/usr/local/apache-ant-1.9.2/lib/svnClientAdapter.jar
svnjavahl.jar=/usr/local/apache-ant-1.9.2/lib/svnjavahl.jar
increment.jar=/usr/local/apache-ant-1.9.2/lib/increment.export.jar
svn.username=zhangzhipeng
svn.password=zhangzhipeng
svn.home=/home/svnData

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 三分钟浅谈TT猫的前端优化

    首先看一张访问TT猫首页的截图: ? 1.png 测试环境为谷歌浏览器,暂且不讨论其它浏览器,截图下方我们可以观察到以下参数: DOMContentLoaded...

    小柒2012
  • javamelody Unexpected html content type,maybe not authentified

    javamelody 添加应用一直报错, Unexpected html content type,maybe not authentified 看字面意思应该...

    小柒2012
  • SpringBoot 2.x 开发案例之前后端分离鉴权

    阅读本文需要一定的前后端开发基础,前后端分离已成为互联网项目开发的业界标准使用方式,通过Nginx代理+Tomcat的方式有效的进行解耦,并且前后端分离会为以后...

    小柒2012
  • 关于Hibernate懒加载----Spring filter

    比如部门ENTITY和员工ENTITY,部门与员工1对多,如果lazy设置为 false,那么只要加载了一个部门的po,就会根据一对多配置的关系把所有员工的po...

    lpe234
  • 7月27日VR扫描:苹果或于10月27日发布Apple Glass与ARM Mac新品

    (VRPinea7月27日讯)今日重点新闻:苹果或于10月27日发布Apple Glass与ARM Mac新品;苹果为AirPods和AR/VR头显申请“头部追...

    VRPinea
  • 认识接口测试

    王豆豆
  • PCL中Kd树理论

     k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。

    点云PCL博主
  • 为什么小区内房间里手机信号特别差,但是出了房间就会变好?

    造成这种现象有多种原因,决定手机信号的主要因素是信号的强弱程度,信号的强弱主要是有以下几个方面的因素造成,在室内对于信号的拦截作用还是非常明显的,现代建筑不仅仅...

    程序员互动联盟
  • 浅谈类加载

    类加载包括加载,链接,初始化三个过程。加载过程中通过全限定类名将二进制数据加载到内存中;链接阶段包括验证,准备以及解析,其中验证指的是对class二进制文件格式...

    你的益达
  • JVM学习记录-类加载器

    JVM设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外面去实现,以便让应用程序自己决定如何去获取所需要的...

    纪莫

扫码关注云+社区

领取腾讯云代金券