`

自用Ant脚本 自动编译打包部署

    博客分类:
  • Ant
 
阅读更多

ant.properties

 

# JDK 路径
jdk.home.1.5=D\:/Java/jdk1.5.0_22

#项目名称
webapp.name=Demo

# war 排除的文件
war.exclude=**/WEB-INF/web.xml,**/WEB-INF/weblogic.xml,**/WEB-INF/resources/FineReport.lic,**/WEB-INF/resources/datasource.xml
war.exclude.classes= **/WEB-INF/classes/App.properties,**/WEB-INF/classes/log4j.properties,**/WEB-INF/classes/DbConfig.properties,**/WEB-INF/classes/JoltConfig.properties


#ftp(普通 FTP上传) #
ftp.server=192.168.1.202
ftp.password=1234
ftp.userid=1234
ftp.path=/home/app/

#ssh ( SFTP 上传) #
ssh.host=127.0.0.1
ssh.path=/home/app/bea/wls/user_projects/domains/bzsk/webapp
ssh.pwd=password
ssh.uname=username

# 执行ssh 命令   #
#ssh.path.webapp=/home/app/bea/wls/user_projects/domains/bzsk/webapp
ssh.server.bin=/home/app/bea/wls/user_projects/domains/bzsk/bin
ssh.cmd.openwar=source ~/.bash_profile ;cd / ; cd ${ssh.path} ; jar -xvf
ssh.server.start= cd / ; cd ${ssh.server.bin} ; ./startWebLogic.sh
ssh.server.stop= cd / ; cd ${ssh.server.bin} ; ./stopWebLogic.sh

 

   ant.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="usage" name="${project.name}">

    <!--下句是import进ant属性配置文件,properties文件里存放基本的配置变量。该变量可以在build.xml中直接引用 -->
    <property file="bzsk.properties"/>


    <!--以下的几个属性是系统自带的,初始了tstamp之后,它们就有值了
     ${DSTAMP}    ${TSTAMP}      ${TODAY}
     -->
    <tstamp/>
    <property name="war.name" value="${webapp.name}${DSTAMP}" />

    <!-- =================================================================== -->
    <!-- Help on usage -->
    <!-- =================================================================== -->
    <target name="usage" depends="init">
        <echo message="ant build ${project.name} -- ${DSTAMP}"/>
    </target>

    <target name="init">

        <property name="debug" value="off"/>
        <property name="optimize" value="on"/>
        <property name="deprecation" value="on"/>

        <!--    java源文件路径 -->
        <property name="src.dir" value="${basedir}/src"/>

        <!--    jar包路径 -->
        <property name="lib.dir" value="${basedir}/lib"/>

        <!--    webapp路径 -->
        <property name="webapp.dir" value="${basedir}/jsp"/>
        <property name="packages" value="com.*"/>

        <!--    准备源文件路径 -->
        <property name="build.src" value="${basedir}/AntBuild/build"/>

        <!--    编译源文件路径 -->
        <property name="build.dest" value="${basedir}/AntBuild/bin"/>

        <!--    准备webapp文件路径 -->
        <property name="buildwar.dest" value="${basedir}/AntBuild/warsrc"/>


        <!--    打包war文件路径 -->
        <property name="war.dest" value="${basedir}/AntBuild/war"/>

        <!--    jre lib路径 -->
        <property name="jre.lib" value="${jdk.home.1.5}/jre/lib"/>


        <!--    classpath -->
        <path id="classpath">
            <!--j2ee-->
            <!--<fileset dir="${j2eelib.dir}">-->
            <!--<include name="**/*.jar"/>-->
            <!--</fileset>-->

            <fileset dir="${jre.lib}">
                <include name="**/*.jar"/>
            </fileset>

            <fileset dir="${lib.dir}">
                <include name="**/*.jar"/>
            </fileset>
            <!--<pathelement location="lib/"/>-->
        </path>

    </target>


    <!-- =================================================================== -->
    <!-- 编译源文件-->
    <!-- =================================================================== -->
    <target name="build" depends="init">
        <mkdir dir="${buildwar.dest}/WEB-INF/classes"/>
        <delete>
            <fileset dir="${buildwar.dest}/WEB-INF/classes" includes="**/*.*"/>
        </delete>
        <javac srcdir="${src.dir}" destdir="${buildwar.dest}/WEB-INF/classes" debug="${debug}" optimize="${optimize}">
            <classpath refid="classpath"/>
        </javac>
        <copy todir="${buildwar.dest}/WEB-INF/classes">
            <fileset dir="${src.dir}">
                <include name="**/*.*"/>
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>


    <!-- =================================================================== -->
    <!-- 打war包-->
    <!-- =================================================================== -->

    <target name="ant.war" depends="build">
        <delete>
            <fileset dir="." includes="**/*.war"/>
        </delete>

        <!--needxmlfile 设为false才不会报错   web.xml不存在 ant会报错-->
        <war destfile="${war.name}.war" needxmlfile="false">
            <lib dir="${basedir}/lib"/>
            <classes dir="${buildwar.dest}/WEB-INF/classes" excludes="${war.exclude.classes}"/>
            <fileset dir="${webapp.dir}" excludes="${war.exclude}"/>
        </war>

    </target>


    <!-- =================================
    target: upload with  ftp
   ================================= -->
    <target name="upload-ftp" depends="ant.war">
        <ftp password="${ftp.password}"
             server="${ftp.server}"
             userid="${ftp.userid}"
             remotedir="${ftp.path}"
             binary="true">

            <fileset file="${basedir}/${war.name}.war"/>
        </ftp>
    </target>


    <!-- ===================================================================
            上传本地文件到远程服务器,执行远程命令
        =================================================================== -->
    <target name="upload_ssh" depends="ant.war">
        <!--上传-->
        <scp file="${basedir}/${war.name}.war" todir="${ssh.uname}:${ssh.pwd}@${ssh.host}:${ssh.path}"
             trust="true"/>

        <!--执行命令 -->
        <sshexec host="{ssh.host}"
                 username="${ssh.uname}"
                 password="${ssh.pwd}" trust="true"
                 command="${ssh.server.stop} ;
                       ${ssh.cmd.openwar} ${war.name}.war ;
                       ${ssh.server.start}"/>
    </target>


   

    <!-- =================================================================== -->
    <!-- 清除临时文件-->
    <!-- =================================================================== -->
    <target name="clean" depends="init">
        <delete>
            <fileset dir="${build.dest}" includes="**/*.class"/>
        </delete>
    </target>


</project>
 

 

分享到:
评论

相关推荐

    android程序编译打包工具

    在Android应用开发中,编译和打包是至关重要的步骤,它们将源代码转换为可以在Android设备上运行的应用程序。本文将深入探讨“Android程序编译打包工具”的使用,包括资源文件的修改和重新打包。 首先,Android应用...

    自用js 脚本.js

    自用js 脚本.js

    自用shell脚本哒哒

    "自用shell脚本哒哒"这个标题可能表示这是一些个人使用的shell脚本集合,用于解决日常的计算机操作问题或者自动化任务。下面我们将深入探讨shell脚本的相关知识点。 1. **Shell简介**:Shell是Linux或Unix操作系统...

    ant 自用ppt培训

    总结来说,Ant通过其强大的`build.xml`配置文件和丰富的task集合,为Java项目的构建、测试和部署提供了全面的自动化解决方案。通过理解和应用上述知识点,开发者能够更高效地管理和优化项目构建流程。

    一个自用压测脚本

    shell编写的压力测试,自用脚本,丢上来以后好找,大家需要用的可以下载下来用用,不错的资源,会生成html格式的结果

    自用-kohya-ss GUI 部署及使用

    自用-kohya-ss GUI 部署及使用

    自用固件,合并openwrt和immortalwrt编译AX6(刷机有风险,刷本固件变砖后果自负!).zip

    自用固件,合并openwrt和immortalwrt编译AX6.zip 自用固件,合并openwrt和immortalwrt编译AX6.zip 自用固件,合并openwrt和immortalwrt编译AX6.zip 自用固件,合并openwrt和immortalwrt编译AX6.zip 自用固件,合并...

    疫情时自用的抢菜脚本程序(基于autojs pro).zip

    疫情时自用的抢菜脚本程序(基于autojs pro).zip疫情时自用的抢菜脚本程序(基于autojs pro).zip疫情时自用的抢菜脚本程序(基于autojs pro).zip疫情时自用的抢菜脚本程序(基于autojs pro).zip疫情时自用的抢菜...

    自用linux工具脚本

    这是一个功能丰富的Linux系统管理脚本,主要提供以下核心功能: 系统初始化与环境配置: - 自动安装常用命令工具(curl、lrzsz、unzip等) - 设置系统时区为上海时区 - 配置vim编辑器,解决复制粘贴问题 - 添加常用...

    南瓜脚本包——自用.zip

    【南瓜脚本包——自用.zip】是一个包含个人使用的脚本集合的压缩文件。脚本包通常是由一系列编程脚本组成的,这些脚本可能用于自动化任务、数据处理、系统管理或者其他的IT工作流程。在本案例中,“南瓜脚本包”可能...

    自用shell脚本编辑1(条件测试:read,test,,)

    自用shell脚本编辑1(条件测试:read,test,,)

    疫情时自用的基于autojs抢菜脚本项目源码,各抢菜大平台都可使用.zip

    疫情时自用的基于autojs抢菜脚本项目源码,各抢菜大平台都可使用疫情时自用的基于autojs抢菜脚本项目源码,各抢菜大平台都可使用疫情时自用的基于autojs抢菜脚本项目源码,各抢菜大平台都可使用疫情时自用的基于...

    一款自用的pyinstaller打包辅助工具+源码.rar

    今天分享一款自用的pyinstaller打包辅助工具,把pyinstaller打包的常用的选项内置在工具中,勾选后点击打包即可。注:-F -w -i 参数仅对打包.py文件时有效,如果是打包spec文件时,这三个参数勾选与否都无关保存路径...

    自用小程序反编译工具,可用于解密和还原被加密的小程序代码,以便进行修改或者了解其实现细节

    小程序反编译工具软件是一种用于解析和还原微信小程序源代码的工具。它可以将小程序中的JavaScript代码、WXML文件和WXSS样式表等资源还原成可读性较高的格式,方便开发者进行分析和修改。 适用人群包括小程序开发者...

    PADS_Layout自用BOM导出脚本

    自用资源,大家有更好用的 可以评论区交流。

    红果脚本.apk【2024年8月更新 自用版】

    红果脚本.apk 红果脚本.apk

    自用渗透测试脚本合集.zip

    自用渗透测试脚本合集渗透测试工具自用渗透测试脚本合集ip_detectUsage: ip_detect.py [options] [Input, Output]Options: -h, --help show this help message and exit -f FEATURES, --features=FEATURES 1: Only ...

    自用脚本备份 back 123

    "自用脚本备份 back 123" 提示我们这是一个个人使用的脚本,用于定期或者按需备份重要数据。这样的脚本通常由程序员或系统管理员编写,以自动化备份过程,确保数据的安全性和可恢复性。下面将详细介绍与这个主题相关...

    allegro的脚本方便快速画图

    描述"自用的skill脚本,方便画图快捷,下载后可私信安装"暗示了这些脚本是作者个人在使用过程中为了提高工作效率而编写的,并且愿意分享给他人使用。私信安装可能意味着这些脚本可能需要根据用户的Allegro环境进行...

    Surge自用配置以及模块和脚本.zip

    Surge自用配置以及模块和脚本.zip

Global site tag (gtag.js) - Google Analytics