完整版见https://jadyer.github.io/

<?xml version="1.0" encoding="UTF-8"?>
<project name="AntDemoProject" default="dist" basedir="."><!-- 【定义变量】set global properties for this build --><property name="src" location="src" /><property name="build" location="build" /><property name="dist" location="dist" /><!-- 【加载属性文件】 --><property file="build.properties" /><echo>${container.deploy.dir}</echo><target name="init"><!-- Create the time stamp --><tstamp /><!-- Create the build directory structure used by compile --><mkdir dir="${build}" /></target><!-- 【编译】Compile the java code from ${src} into ${build} --><target name="compile" depends="init"><javac srcdir="${src}" destdir="${build}" /></target><!-- 【打包Jar】 --><target name="dist" depends="compile"><!-- Create the distribution directory --><mkdir dir="${dist}/lib" /><!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file --><jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}" /></target><!-- 【清空】Delete the ${build} and ${dist} directory trees --><target name="clean"><delete dir="${build}" /><delete dir="${dist}" /></target><!-- 【运行】 --><target name="run" depends="compile"><java classpath="${build}" classname="HelloJFrame" fork="true"></java></target>
</project>
<!--
=================================================================================================================
1、安装和配置Ant①Download Ant binary distribution from:http://ant.apache.org/bindownload.cgi从Apache下载它的zip包,解压到任何本地磁盘上②Set ANT_HOME to where you installed Ant设置ANT_HOME环境变量,也就是解压后存放的目录③Include $ANT_HOME/bin in PATH在环境变量中更新Path值,加上%ANT_HOME%/bin④Make sure JAVA_HOME is set to point to JDK检查JDK的目录,确定JAVA_HOME已加到环境变量中
=================================================================================================================
2、build.xml使用Ant的通常做法是在项目中建立一个XML文件,名字通常取build.xml。当然也可以取任何喜欢的名字每一个build.xml只能有一个<project>标签,每个<project>标签中可以包含若干<tartget>标签每一个target可以独立执行,或依赖于其他target执行完毕才能执行①<project>标签含以下属性name=====项目名称default==当没有指定target时使用的缺省targetbasedir==用于计算所有其他路径的基路径②<target>标签含以下属性name=========target的名字depends======用逗号分隔的target的名字列表,也就是依赖表if===========执行target所需要设定的属性名unless=======执行target需要清除设定的属性名description==关于target功能的简短描述③举例:<target name="A"/><target name="B" depends="A"/><target name="C" depends="B"/><target name="D" depends="C,B,A"/>其中target A可以独立执行,但是B、C、D则依赖于其他target才可以执行也就是说,执行target D时,Ant就会按照A__B__C这样的顺序先执行其他target从依赖属性来看,你可能认为先执行C,然后B,最后A。错了!C依赖于B,B依赖于A,所以先执行A,然后B,然后C,最后D才会被执行并且一个target只能被执行一次,即时有多个target依赖于它而且还要确保初始化target总是出现在其他target依赖表中的第一个target。初始化target的名字通常是init。
=================================================================================================================
3、定义变量①如果想使用定义变量,可以在<project>标签下定义<property>标签,如<property name="dist" location="dist" />这样在引用的时候就可以使用${dist}这样的变量了,省得自己去修改每一处需要用到变量的地方②另外,还可以使用一个外置的属性文件:build.properties,以name=value方式定义变量然后在build.xml中添加<property file="build.properties" />引用这个文件
=================================================================================================================
4、创建目录<target name="init"><mkdir dir="${dist.dir}" /><mkdir dir="${dist.classes.dir}" /></target>①这里的dist.dir等用${}括起来的,是我们定义的变量②创建一个目录,如果他的父目录不存在,也会被同时创建<mkdir dir="build/classes"/>说明:如果build目录不存在,也会被同时创建
=================================================================================================================
-->
<!--
=================================================================================================================
5、编译Java文件<target name="compile"><javac srcdir="${src.dir}" destdir="${dist.classes.dir}" debug ="true" encoding="GBK"><classpath refid="classpath" /></javac><jar destfile="${dist.classes.dir}/lib/app.jar" basedir= "${dist. classes.dir}"/></target>这里的<javac>标签中有srcdir、destdir、debug、encoding等属性,还有一个classpath的子标签srcdir==========即目标source,需要编译的源文件destdir=========就是目的地,编译出来的class的存放地debug===========指明source是不是需要把debug信息编译进去。如果不加这个参数,等于在命令行后面加上-g:none参数encoding========指明以何种编码方式编码source文件。对于有中文文字的代码来说这项比较重要classpath子标签==指明需要应用的jar包,或其他class文件的所在地。这也是非常重要的一个选项classpath子标签的使用方式有以下两种:①作为classpath引用预先定义的jar包位置,refid指明了一个引用变量<property name="lib.dir" value="${basedir}/lib" /><path id="classpath"><fileset dir="${lib.dir}"><include name="*.jar"/></fileset></path><classpath refid="classpath" />②简单的使用是这样的:<javac srcdir="${src}" destdir="${build}" classpath="xyz.jar" debug="on" />③<javac srcdir="${src}:${src2}"destdir="${build}"includes="mypackage/p1/**,mypackage/p2/**"excludes="mypackage/p1/testpackage/**"classpath="xyz.jar"debug="on"/>表示:编译${src}和${src2}目录及其子目录下的所有Java文件但是package/p1/**,mypackage/p2/**将被编译,而mypackage/p1/testpackage/**将不会被编译Class文件将放在${build}指定的目录下classpath表示需要用到的类文件或者目录debug设置为on表示输出debug信息
=================================================================================================================
6、打Jar包<jar destfile="${dist}/lib/app.jar" basedir="${dist.classes.dir}"/>这个就是把编译好的文件打成Jar包的Ant脚本,和上面的javac一样,可以放在任意位置destfile==该属性用来指明所要打成的包basedir===该属性用来指明目标class文件①<jar destfile="${dist}/lib/app.jar"><fileset dir="${build}/classes" excludes="**/Test.class" /><fileset dir="${src}/resources"/></jar>上面这段脚本很容易理解,就是除了Test.class以外,把一个source的resource目录,连同编译后的class脚本一起打进app.jar包内②<jar destfile="${dist}/lib/app.jar"basedir="${build}/classes"includes="mypackage/test/**"excludes="**/Test.class"manifest=”my.mf”/>manifest==这个属性用来指定自己的META-INF/MANIFEST.MF文件,而不是由系统生成③创建ZIP文件<zip destfile="output.zip" basedir="output"/>④使用GZip压缩文件<gzip src="output.tar" mce_src="output.tar" zipfile="output.tar.gz"/>⑤解压缩和提取文件<unzip src="output.tar.gz" mce_src="output.tar.gz" dest="extractDir"/>⑥打Ear包<ear destfile="build/myapp.ear" appxml="src/metadata/application.xml"><fileset dir="build" includes="*.jar,*.war"/></ear>
=================================================================================================================
-->
<!--
=================================================================================================================
7、复制文件<copy todir="${dist.webapps.dir}/WEB-INF/lib" overwrite="true" flatten="true"><fileset dir="${lib.dir}"><include name="*.jar" /><exclude name="j2ee.jar" /></fileset></copy>todir======指定需要拷贝的地点overwrite==是否需要覆盖【flatten====是否忽略目的目录结构,不管是什么目录,直接拷贝文件到目的地,丢弃其所在结构】
=================================================================================================================
8、其他拷贝①单个文件的拷贝<copy file="myfile.txt" tofile="mycopy.txt"/>或者<copyfile src="test.java" mce_src="test.java" dest="subdir/test.java"/>②文件到目录拷贝<copy file="myfile.txt" todir="../some/other/dir"/>③目录到目录拷贝<copy todir="../new/dir"><fileset dir="src_dir"/></copy>④拷贝一批文件到指定目录下<copy todir="../dest/dir"><fileset dir="src_dir"><exclude name="**/*.java"/></fileset></copy>或者<copy todir="../dest/dir"><fileset dir="src_dir" excludes="**/*.java"/></copy>⑤拷贝一批文件到指定目录下,并将文件名后增加.Bak后缀<copy todir="../backup/dir"><fileset dir="src_dir"/><mapper type="glob" from="*" to="*.bak"/></copy>⑥拷贝一个文件集合到一个目录,同时建立备份文件<copy todir="../backup/dir"><fileset dir="src_dir"/><globmapper from="*" to="*.bak"/></copy>⑦拷贝sr_dir目录到backup/dir目录,并把所有文件中的@TITLE@替换成Foo Bar<copy todir="../backup/dir"><fileset dir="src_dir"/><filterset><filter token="TITLE" value="Foo Bar"/></filterset></copy>⑧拷贝一个目录下的东西到另一个目录下(includes加入,excludes排除)<copydir src="${src}/resources" mce_src="${src}/resources"dest="${dist}"includes="**/*.java"excludes="**/Test.java"/>
=================================================================================================================
-->
<!--
=================================================================================================================
9、删除操作<target name="clean"><delete dir="${dest.dir}"/><delete file="${dest2.dir}"/></target>①删除一个文件<delete file="/lib/ant.jar"/>②删除指定目录及其子目录<delete dir="lib"/>③删除指定的一组文件<delete><fileset dir="." includes="**/*.bak"/></delete>④删除当前目录下所有的文件和目录,不包括当前目录<delete includeEmptyDirs="true"><fileset dir="build"/></delete>⑤删除当前目录下所有的文件和目录,不包括当前目录<delete includeEmptyDirs="true"><fileset dir="build" includes="**/*"/></delete>⑥删除当前目录下所有的svn相关文件(因为svn文件默认是excludes的,所以这里要设置一下)<delete defaultexcludes="false"><fileset dir="src" includes="**/.svn"/></delete>⑦删除文件目录树<deltree dir="dist"/>
=================================================================================================================
10、移动操作①移动或重命名一个文件<move file="file.orig" tofile="file.moved"/>②移动或重命名一个文件到另一个文件夹下面<move file="file.orig" todir="dir/to/move/to"/>③将一个目录移到另外一个目录下<move todir="new/dir/to/move/to"><fileset dir="src/dir"/></move>④将一组文件移动到另外的目录下<move todir="some/new/dir"><fileset dir="my/src/dir"><include name="**/*.jar"/><exclude name="**/ant.jar"/></fileset></move>⑤移动文件过程中增加.Bak后缀<move todir="my/src/dir"><fileset dir="my/src/dir"><exclude name="**/*.bak"/></fileset><mapper type="glob" from="*" to="*.bak"/></move>
=================================================================================================================
11、其它操作①重命名文件<rename src="foo.jar" mce_src="foo.jar" dest="ant-${version}.jar"/>②建立临时文件<tempfile property="temp.file" destDir="build" suffix=".xml"/>即在build目录下,建立文件名为temp.file,后缀为.xml的文件③输出信息<echo message="xxx"/>或者<echo>yyy</echo>④输出一段XML<echoxml file="subbuild.xml"><project default="foo"><target name="foo"><echo>foo</echo></target></project></echoxml>⑤引入一个XML文件<import file="../common-targets.xml"/>
=================================================================================================================
-->

How to work with Ant相关推荐

  1. jenkins+ant+jmeter接口测试

    <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl=" ...

  2. 对 Jenkins+ANT+Jmeter 接口测试的实践

    转载地址:https://testerhome.com/topics/5262 1.前言 最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只 ...

  3. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  4. 编译工具 之 ant

    一.概述 需要设置的环境变量:         JAVA_HOME="D:\JDK",         ANT_HOME="D:\ant",         P ...

  5. linux java 构建工具有哪些,Linux ant --强大的Java开发构建工具

    用途说明 ant严格说来,ant其实并非原生的Linux命令,但它是一个使用广泛.功能强大的跨平台构建工具程序,尤其是进行Java开发时,许多开源的Java项目都使用ant作为构建工具.ant命令一般 ...

  6. Ant Design of React从入门到开发教程

    Ant Design Pro 是一个企业级中后台前端/设计解决方案. 目录: 一:开发前的准备 二:创建页面 三:创建组件并引用 四:封装网络请求和网络请求走向 五:登录流程以及路由权限设置 六:父组 ...

  7. Ant Design Pro 登录流程以及路由权限设置

    登录流程: 1.ant 框架最外层套了 SecurityLayout 布局 SecurityLayout 中判断用户是否登录,做自动跳转路由处理. 里面的 currentUser 和 currentU ...

  8. ant Design Pro 登录状态管理

    未登录自动跳转到登录页面,登录成功不跳转回登录页面的实现代码调用流程. ant Design Pro 是一个企业中后台管理框架,开始做他,第一个肯定是要做登录,下面来看一下它是怎么登录的. 先看路由配 ...

  9. Ant Design Pro 网络请求流程

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 在 Ant Design Pro 中,一个完整的前端 UI 交互到服务端处理流程是这样的: UI 组件交互操作 ...

  10. 【Ant Design Pro 一】 环境搭建,创建一个demo

    技术交流qq群   173683895 搭建 Ant Design Pro 的前期准备:你的本地环境需要安装 cnpm.node. 注:代码块中的 $  代表: $后面是在命令行输入的命令,举例 $ ...

最新文章

  1. c++生成nurbs曲面文件_使用曲面细分丰富原始多边形
  2. 《开源者说》08期:聊聊Java那些事儿
  3. vue学习笔记——路由
  4. Spring batch 2.0例子(lineMapper)
  5. python逐行读取excel_python对execl 处理操作代码
  6. AMD迎接变革:加速OpenCL的未来
  7. LeetCode 838. 推多米诺(模拟)
  8. 前台为html后台是asp在vs2012中建立什么,Asp.net中后台*.cs与前台JS脚本之间相互调用的几点心得...
  9. 项目管理实战课程总结
  10. PS去除图片白底制作微信表情包
  11. java oracle中文乱码_解决java oracle中文乱码的方法
  12. 调用支付宝第三方支付接口详解(沙箱环境)
  13. oce专项认证 oracle_Oracle Certification Program | Oracle 中国
  14. Ubuntu 18.04上跑通LSD SLAM
  15. 龙妈苟活还是凉凉,预测算法哪家准?
  16. Office 开发版本号与版本对应关系
  17. 自然语言生成技术现状调查:核心任务、应用和评估(3)
  18. vue使用addrouter添加动态路由
  19. 整理各类IT编程视频教程下载地址
  20. 【阅读】A Comprehensive Survey on Distributed Training of Graph Neural Networks——翻译

热门文章

  1. .kux转mp4文件
  2. 图片放大后模糊怎么变清晰?
  3. comsol显示电场计算结果_comsol电磁场仿真案例
  4. 软考中级网络工程师学习笔记(知识点汇总)详细版本
  5. opencv 图像平滑处理(python)
  6. 省市县三级数据联动 -Java
  7. 【typecho插件】typecho邮箱插件LoveXiaozhou是一款Typecho邮件通知类插件、小周
  8. python实现pdf阅读器_PyQt5 从零开始制作 PDF 阅读器(一)
  9. 分布式智能电网-BMS蓄电池安全管理系统在各行业应用
  10. Windows开启卓越性能模式,一键睿频