<?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. Python和Flask真强大:不能错过的15篇技术热文(转载)

    Python和Flask真强大:不能错过的15篇技术热文 本文精选了 Python开发者 11月份的15篇 Python 热文.其中有基础知识,机器学习,爬虫项目实战等. 注:以下文章,点击标题即可阅 ...

  2. 云计算之路-试用Azure:竟然无法重置虚拟机的管理员密码

    在忘记管理员密码的情况下,可以远程重置服务器的管理员密码是云计算服务的一个优势,这是使用自己的物理服务器无法实现的. 但是,在使用Azure的时候,我们找遍Azure管理控制台也没找到可以重置虚拟机( ...

  3. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何声明定时器,使用定时器TON模块 TC3

    TON功能块功能: 当输入为高电平时,计时器开始计时,CV表示计时器计时的当前值,而PV则是计时的目标值,当CV的值等于PV的值时,输出置1.     在主程序接下去的地方按下F2并添加TON功能块. ...

  4. 解决ARC的循环引用问题

    看看下面的程序有什么问题: BNRItem.h @interface BNRItem : NSObject @property (nonatomic, strong) BNRItem *contain ...

  5. toFixed 不能四舍五入问题

    最近在项目中遇见一个bug,数据在移动端与pc端不一致,金额少了0.01,原因是js在处理0.005的时候直接舍去了千分位,直接上解决方法 Number.prototype.toFixed = fun ...

  6. draw call 理解和优化

    draw call是openGL的描绘次数(directX没怎么研究,但原理应该差不多)一个简单的openGL的绘图次序是:设置颜色→绘图方式→顶点座标→绘制→结束.每帧都会重复以上的步骤.这就是一次 ...

  7. Android Exception 11(baidumapsdk(15405): Authentication Error errorcode: 102 uid)

    08-12 16:06:12.622: E/baidumapsdk(15405): Authentication Error errorcode: 102 uid: null appid -1 msg ...

  8. Nunit2.5.10快速上手(笔记)

    1.下载Nunit:http://www.nunit.org/index.php?p=download,下载MSI格式的安装包: 2.安装Nunit,根据提示安装即可,没有什么需要配置的,直接下一步就 ...

  9. One simple WPF & C# RayTracer

    What's this 这是一个软渲染光线追踪器,基于c#和wpf技术. How to use 这份代码的唯一参考书是Ray Tracing From The Ground Up,在学习和阅读本书过程 ...

  10. JConsole的使用手册 JDK1.5(转)

    一篇Sun项目主页上介绍JConsole使用的文章,前段时间性能测试的时候大概翻译了一下以便学习,今天整理一下发上来,有些地方也不知道怎么翻,就保留了原文,可能还好理解点,呵呵,水平有限,翻的不好,大 ...