<?xml version="1.0"?>
<project name="dxcc" default="buildplugins" basedir="..">
<property name="build.lib.dir" value="${basedir}/build/lib"/>
<property name="target.dir" value="${basedir}/target"/>
<property name="deploy.dir" value="${basedir}/deploy"/>
<property name="target.plugins.dir" value="${basedir}/target/plugins"/>
<property name="lib.web.dir" value="${basedir}/WebRoot/WEB-INF/lib"/>
<property name="plugin.src.dir" value="${basedir}/src/plugins" />
<property name="compile.dir" value="${basedir}/WebRoot/WEB-INF/classes" />
<property name="localdeploy.dir" value="E:/apache-tomcat-7.0.63-dxcc/webapps/dxcc/plugins" />
<taskdef resource="net/sf/antcontrib/antlib.xml"><!-- 需要将ant-contrib.jar文件加到myeclipse配置ant类路径下 -->
<classpath>
<pathelement location="${basedir}/build/lib/ant-contrib.jar"/>
</classpath>
</taskdef>
<path id="compile.dependencies">
<fileset dir="${build.lib.dir}" includes="rt.jar,servlet.jar"/>
<fileset dir="${lib.web.dir}" includes="**/*.jar"/>
<pathelement location="${compile.dir}"/>
</path> <!-- clean ================================================================================== -->
<target name="clean">
<delete dir="${target.dir}"/>
<delete dir="${deploy.dir}"/>
<!-- <delete dir="${localdeploy.dir}"/>-->
</target>
<!-- init ================================================================================== -->
<target name="init" depends="clean">
<mkdir dir="${target.dir}"/>
<mkdir dir="${deploy.dir}"/>
<mkdir dir="${target.plugins.dir}"/>
</target> <!-- build all plugins in plugins src folder ================================================ -->
<target name="buildplugins" depends="anttasks,init" description="遍历插件文件夹">
<subdirinfo dir="${plugin.src.dir}" property="dirlist" ifexists="plugin.xml" except="admin" />
<for list="${dirlist}" param="plugin" trim="true">
<sequential>
<buildplugin plugin="@{plugin}" pluginsrc="${plugin.src.dir}"/>
</sequential>
</for>
</target> <!-- anttasks ============================================================================== -->
<target name="anttasks" description="自定义ant遍历目录接口">
<taskdef name="subdirinfo" classname="org.jivesoftware.ant.SubDirInfoTask">
<classpath>
<pathelement location="${basedir}/build/lib/ant-subdirtask.jar" />
</classpath>
</taskdef>
</target> <!-- localdeploy =========================================================================== --> -----------------部署全部插件
<target name="localdeploy" depends="anttasks,init" description="本地部署">
<subdirinfo dir="${plugin.src.dir}" property="dirlist" ifexists="plugin.xml" except="admin" />
<for list="${dirlist}" param="plugin" trim="true">
<sequential>
<deployplugin plugin="@{plugin}" pluginsrc="${plugin.src.dir}"/>
</sequential>
</for>
</target>

  <target name="amobile" depends="anttasks,init" description="遍历插件文件夹"> -----------------------部署指定插件
        <deployplugin plugin="oa" pluginsrc="${plugin.src.dir}"/>
        <deployplugin plugin="websites" pluginsrc="${plugin.src.dir}"/>
        <deployplugin plugin="salary" pluginsrc="${plugin.src.dir}"/>
        <deployplugin plugin="newResearch" pluginsrc="${plugin.src.dir}"/>
        <deployplugin plugin="cloud" pluginsrc="${plugin.src.dir}"/>
        <deployplugin plugin="thesis" pluginsrc="${plugin.src.dir}"/>
        <deployplugin plugin="tmprt_check_sys" pluginsrc="${plugin.src.dir}"/>
        <deployplugin plugin="sam" pluginsrc="${plugin.src.dir}" />
        <deployplugin plugin="boh_sys" pluginsrc="${plugin.src.dir}" />
        <deployplugin plugin="periodical" pluginsrc="${plugin.src.dir}" />
        </target>
<!-- deployplugin (MACRO) =================================================================== -->
<macrodef name="deployplugin" description="建立插件宏">
<attribute name="plugin"/>
<attribute name="pluginsrc"/>
<sequential>
<copy todir="${localdeploy.dir}/@{plugin}" overwrite="true">
<fileset dir="@{pluginsrc}/@{plugin}">
<include name="**/*.*"/>
<exclude name="src/**/*.*"/>
</fileset>
</copy>
</sequential>
</macrodef>
<!-- buildplugin (MACRO) =================================================================== -->
<macrodef name="buildplugin" description="建立插件宏">
<attribute name="plugin"/>
<attribute name="pluginsrc"/> <sequential>
<mkdir dir="${target.plugins.dir}/@{plugin}/classes"/>
<mkdir dir="${target.plugins.dir}/@{plugin}/lib"/>
<mkdir dir="${target.plugins.dir}/@{plugin}/web"/>
<!-- Compile java classes -->
<javac
destdir="${target.plugins.dir}/@{plugin}/classes"
includeAntRuntime="no"
debug="on"
source="1.6"
target="1.6"
>
<compilerarg line="-encoding UTF-8 "/>
<src path="@{pluginsrc}/@{plugin}/src/java"/>
<classpath>
<path refid="compile.dependencies"/>
<!-- Jars used by the plugin to compile with -->
<fileset dir="@{pluginsrc}/@{plugin}" includes="lib/*.jar"/>
</classpath>
</javac> <!-- Jar the plugin -->
<jar jarfile="${target.plugins.dir}/@{plugin}/lib/@{plugin}.jar">
<fileset dir="${target.plugins.dir}/@{plugin}/classes"/>
</jar> <!-- copy the plugin -->
<copy todir="${target.plugins.dir}/@{plugin}" overwrite="true">
<fileset dir="@{pluginsrc}/@{plugin}">
<include name="**/*.*"/>
<exclude name="src/**/*.*"/>
</fileset>
</copy> <!-- Jar the plugin for deploy -->
<jar jarfile="${deploy.dir}/@{plugin}.jar">
<fileset dir="${target.plugins.dir}/@{plugin}">
<include name="**/*.*"/>
<exclude name="classes/**/*.*"/>
</fileset>
</jar>
</sequential>
</macrodef>
</project>

ant.xml的更多相关文章

  1. 2013.11.15 初学ant构建

    该做的事情都差不多做完了,今天开始用ant构建,所以学了下ant,其实要不是因为ubuntu时不时的抽风我应该早就可以开始构建了,但重写的时候也想清楚了一些逻辑,优化了一些地方.下面是我这辈子写的第一 ...

  2. weblogic对JSP预编译、weblogic读取JSP编译后的class文件、ant中weblogic.jspc预编译JSP

    我们都知道在weblogic中JSP是每次第一次访问的时候才会编译,这就造成第一次访问某个JSP的时候性能下降,有时候我们也希望JSP被编译成class然后打包在jar中实现隐藏JSP的功能,下面介绍 ...

  3. 职场菜鸟初窥Ant

    对于新入职的新人来说,学校的那一套东西于实际的工作根本不够.诸多的技术知识还得自己去慢慢掌握和理解.对于项目的发布笔者以前也就仅仅使用开发工具集成的发布功能,并未使用过Ant进行项目的发布.因此需要做 ...

  4. Jenkins +Ant +Jmeter(apache-jmeter-5.1.1)自动化性能测试平台

    1.安装配置好Jdk, 下载网址:https://www.cr173.com/soft/33894.html 2.Jmeter下载地址:http://jmeter.apache.org/downloa ...

  5. Java琐记

    svn项目倒入,所选的文件夹一定是src上面以及的:然后eclipse会自动创建一个项目,项目名称就是src上级文件夹的名称:然后会按照路径下的文档结构如导入到eclipse的结构中: 被标记为// ...

  6. Chapter 2. Overview gradle概览

    2.1. Features //gradle特性 Here is a list of some of Gradle's features. Declarative builds and build-b ...

  7. Gradle学习之基础篇

    一.gradle基础概念 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具.Gradle抛弃了基于各种繁琐的XML,使用一种基于Groovy的特定领域语言( ...

  8. Linux(centos6.5)下安装jenkins

    Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎. 通俗的来讲,jenkins就是一个可以实现自动化部署的一个插件, 对于我来说,也是应用在系统部署上. 废话不多说,直接进入我们的安 ...

  9. Gradle2.0用户指南翻译——第二章. 概述

    翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...

随机推荐

  1. 非意外的PDB错误 OK(0)

    用ib编项目会出现这个error 用vs重新编译全部 就没有问题 ib的设置改下 Visual Studio Builds--Advanced --PDB File Allocation Force ...

  2. http://blog.csdn.net/a9529lty/article/details/6454145

    http://blog.csdn.net/a9529lty/article/details/6454145

  3. hdu-Coins

    http://acm.hdu.edu.cn/showproblem.php?pid=2844 Problem Description Whuacmers use coins.They have coi ...

  4. Android 常见内存泄漏的解决方式

    在Android程序开发中.当一个对象已经不须要再使用了,本该被回收时.而另外一个正在使用的对象持有它的引用从而导致它不能被回收.这就导致本该被回收的对象不能被回收而停留在堆内存中,内存泄漏就产生了. ...

  5. 在Spring Boot项目中使用Spock框架

    转载:https://www.jianshu.com/p/f1e354d382cd Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring B ...

  6. RocketMq通信协议格式及编解码 (源码分析)

    一.RocketMq broker服务器与客户端的网络通信是基于netty4.x实现的,重点分析  RocketMq设计的通信协议及对应的编解码 开发.         名字解释           ...

  7. 转:java中数组与List相互转换的方法

    1.List转换成为数组.(这里的List是实体是ArrayList) 调用ArrayList的toArray方法. toArray public <T> T[] toArray(T[] ...

  8. GObject对象系统

    http://www.ibm.com/developerworks/cn/linux/l-gobject/ 简单的说,GObject对象系统是一个建立在GLIB基础上的,用C语言完成的,具有跨平台特色 ...

  9. 导出oracle 到 mysql的解决办法

    导出oracle 到 mysql的解决办法 使用sqluldr2 命令如下sqluldr2 USER=weibh/1234@dydb file=c:\1.txt sql=sql.sql   FORMA ...

  10. python的__init__和__new__

    本文所有实例代码在python3.7下 一.__new__和__init__区别 1.__new__先于__init__执行;__new__是相当于其他OOP语言的构造方法,负责创建实例:之后,__i ...