1.查看eclipse中ant插件的版本
进入eclipse安装目录的plugins文件夹下,可以看到对应ant插件的版本(不止ant,其他的插件的版本也同样可以看到):

2.demo-TestTomcat(就利用之前的testTomcat项目搞)
在根目录下新建build.xml(名字可以改,但是一般都是这个),之后的目录为:

build.xml右键Run as Ant Build,运行之后如下图:

3.build.xml的示例
下边就是一个完整的build.xml,然后我们来详细的解释每一句:

<?xml version="1.0" encoding="UTF-8" ?>
<project name="TestTomcat" default="run" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="testAnt_jar" value="testAnt.jar"/>
<target name="init"><mkdir dir="${dest}"/>
</target>
<target name="compile" depends="init"><javac srcdir="${src}" destdir="${dest}"/>
</target>
<target name="build" depends="compile"><jar jarfile="${testAnt_jar}" basedir="${dest}"/>
</target>
<target name="run" depends="build"><java classname="com.zd.ant.TestAnt" classpath="${testAnt_jar}"/>
</target>
<target name="clean"><delete dir="${dest}" /><delete file="${testAnt_jar}" />
</target>
<target name="rerun" depends="clean,run"><ant target="clean" /><ant target="run" />
</target>
</project>

解释:

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

build.xml中的第一句话,没有实际的意义;

<project name="TestTomcat" default="run" basedir=".">
</project>

ant的所有内容必须包含在这个里边,name是你给它取的名字,basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的事情。

<property name="src" value="src"/>

类似程序中的变量,name为src,值为src,表示src目录:

<target name="compile" depends="init"><javac srcdir="${src}" destdir="${dest}"/>
</target>

把你想做的每一件事情写成一个target ,它有一个名字,depends是它所依赖的target,在执行这个target 例如这里的compile之前ant会先检查init是否曾经被执行过,如果执行过则直接直接执行compile,如果没有则会先执行它依赖的target例如这里的init,然后在执行这个target :
编译:

<target name="compile" depends="init"><javac srcdir="${src}" destdir="${dest}"/>
</target>

做jar包:

<target name="build" depends="compile"><jar jarfile="${testAnt_jar}" basedir="${dest}"/>
</target>

运行:

<target name="run" depends="build"><java classname="com.zd.ant.TestAnt" classpath="${testAnt_jar}"/>
</target>

为了不用拷贝,我们可以在最开始定义好目标文件夹,这样ant直接把结果就放在目标文件夹中;
新建文件夹:

<target name="init"> <mkdir dir="${dest}"/>
</target>

为了更多一点的功能体现,又加入了两个target
删除生成的文件:

<target name="clean"><delete dir="${dest}" /><delete file="${ testAnt_jar }" />
</target>

再次运行,这里显示了如何在一个target里边调用其他的target;

<target name="rerun" depends="clean,run"><ant target="clean" /><ant target="run" />
</target>

4.更多信息-标签
1.project
每个构建文件都有一个project标签,有以下属性:
- default:表示默认的运行目标,这个属性是必须的。
- basedir:表示项目的基准目录。
- name:表示项目名。
- description:表示项目的描述。
2.target
任务,一个project标签下有一个或多个target标签,代表任务,任务间可以存在依赖关系。有如下属性:
- name:用于标识,这个是必须的
- depends:用来指定所依赖的任务。

<!-- 初始化任务 -->
<target name="init">  <echo message="  init ${init}   ..."/>
</target>  <!-- 编译 -->
<target name="compile" depends="init">  <delete dir="${classes.dir}" />  <mkdir dir="${classes.dir}" />  <javac srcdir="${src.dir}" destdir="${classes.dir}">  <classpath refid="master-classpath" />  </javac>
</target>

3.delete
删除文件或文件目录,有如下属性
- file:删除文件
- dir:删除目录
- includeEmptyDirs:值得是否删除空目录,默认是true
- failonerror:报错是否停止,默认是true
- verbose:是否列出删除的文件,默认是false

<!--clean other dir--><target name="clean_other_dir"><echo message="begin clean_other_dir..."/><delete dir="${basedir}/${compress.dir}"/><delete dir="${basedir}/pub"/><echo message="begin clean html module-xx..."/><delete includeemptydirs="true"><fileset dir="${basedir}/src/html" ><include name="**/module-*/**"/></fileset></delete><echo message="begin clean res/module-xx、component-xx、res-base..."/><delete includeemptydirs="true"><fileset dir="${basedir}/res" ><include name="module-*/**"/><include name="component-*/**"/><include name="res-base/**"/></fileset></delete></target>

4.copy
拷贝文件或文件目录,属性如下:
- file:表示源文件。
- tofile:表示目标文件。
- todir:表示目标目录。
- overwrite:是否覆盖目标文件,默认为false。
- includeEmptyDirs:是否拷贝空目录,默认为true。
- failonerror:如目标没有发现是否自动停止,默认值true。
- verbose:是否显示详细信息,默认值false。

<target name="cp"><copy todir="${compress.dir}" overwrite="true"><fileset dir="${ob_baseline.dir}"><include name="pub/" /><include name="res/" /><include name="mail_template/" /></fileset></copy>
</target>

5.import
引入别的xml文件,提高复用性:

<import file="./env-judge.xml"/>
<import file="./tasks.xml"/>

6.类似于常量,可以供给build.xml中的其他标签使用。有两个特点:
- 大小写敏感
- 不可改变,谁先设定,之后的都不能改变。
该标签可以与多个属性配合使用。
- name和value:

<property name="module_name" value="admin"/> 

后面直接使用即可:

<echo message="begin nej-build ${module_name}..."/> 
  • name和refid:
<property name="srcpath" refid="dao.compile.classpath"/> 

其中的dao.compile.classpath在别的地方进行了定义。当然,也可以通过直接引用的方式:

<property name="baseline.dir" value="${ob_baseline.dir}"/> 
  • name和location:
<property name="srcdir" location="src"/> 

将srcdir的值设置为当前文件路径/src。
- file:

<property file="./omad/build.properties"/> 

导入相对文件中的所有变量,这里的build.properties专门用来存放各种变量;
•environment:

<property environment="env"/> 

设置系统的环境变量前缀为env。比如

<property name="tomcat.home" value="${env.CATALINA_HOME}"/> 

将系统的tomcat安装目录设置到tomcat.home属性中。
(更多信息可以参考:
https://wenku.baidu.com/view/695488d676eeaeaad1f330ab.html?from=search)

Eclipse中Ant的使用相关推荐

  1. 在Eclipse中集成Ant编程之配置篇

    提要:本文将向你展示如何使用Eclipse设置为Ant所用的属性值和环境变量,并简要分析如何配置Ant编辑器以便从Eclipse内部操作Ant文件. 一. 修改Ant Classpath 在使用一个可 ...

  2. Eclipse中使用Ant

    前言:虽然在eclipse中使用比较简单,但是在这里也进行简单整理. 现在Eclipse对Ant已经进行了集成,在Eclipse中也可以对Ant工具进行定制. 选择Window->Prefere ...

  3. Eclipse中10个最有用的快捷键组合

    一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升. 1. ctrl+shift+r:打开资源 这可能 ...

  4. 在Eclipse中使用Maven构建Spring项目

    最新版的Spring需要使用Maven构建,本文讲述怎么在Eclipse构建Maven项目,以配置Spring项目为例. maven简单介绍 maven是构建工具,也是构建管理工具.ant只是构建工具 ...

  5. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

    上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...

  6. Openfire3.9.3源代码导入eclipse中开发配置指南

    软件版本: Eclipse:eclipse-jee-indigo-SR2-win32-x86_64 JDK: 1.7 Openfire: 3.9.3 本文将图文介绍如何把openfire(以3.9.3 ...

  7. 在Eclipse中写第一个hibernate小例子

    在hibernate自带的文档中,包含了一个很简单的小例子,不过这个小例子是基于ant的,而且说的不是很详细,不利于新手学习.在这里,我将在Eclipse中实现这个例子,并给出详细的实现步骤.     ...

  8. Tomcat8源码编译及导入Eclipse中研究

    最近因为需求需要修改Tomcat中的某些功能,无奈只能研究那部分源码然后稍作修改. 目前Tomcat最新版是8.0,下载了源码包,编译并导入Eclipse中研究比较方便. 1. Tomcat8源码编译 ...

  9. floodlight java_floodlight学习系列(1)——在Eclipse中安装运行floodlight

    环境:ubuntu 16.04 前提:已经成功安装了JDK和Ecplise 1.安装floodlight apt-get install build-essential default-jdk ant ...

最新文章

  1. jquery-- json字符串没有自动包装为 json对象
  2. 【Android 插件化】Hook 插件化框架 ( Hook 实现思路 | Hook 按钮点击事件 )
  3. [转]加班,加班,加班
  4. 无人自助便利店采用射频识别技术 30秒钟就能完成付款
  5. 土财主休闲威客-可行性分析(评测)
  6. Docker笔记(基础篇)
  7. MAR DASCTF 2021
  8. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day8】 —— Redis2
  9. 计算机上无线网络开关在哪里,笔记本无线网络开关在哪里?
  10. linux系统键盘被锁定,Unix系统键盘失效等问题讲解
  11. excel单元格斜线_excel常用操作大全(建议收藏)
  12. BULK INSERT如何将大量数据高效地导入SQL Server(转)
  13. Java 贪吃虫小游戏
  14. 第5章 网站前台-活动与招聘
  15. doraemon的python 函数与装饰器(哎呀,忘记传了)
  16. UCAS - AI学院 - 知识图谱专项课 - 第8讲 - 课程笔记
  17. 【Android系统源码修改】修改系统默认定位方式
  18. php 实现邮件定时发送,PHP实现邮件的自动发送
  19. 第一个Python爬虫
  20. html yy直播,YY开播怎么捕捉窗口屏幕?设置直播范围介绍

热门文章

  1. 台大郭彦甫教授Matlab讲解笔记(一)
  2. opencl入门介绍
  3. 用编译器写的mov ax,[0]指令,执行的实际上是mov ax,0
  4. java计算年份_如何计算Java中2个日期之间的年份和年份
  5. 风控模型中的KS-指标
  6. matlab验证采样定理
  7. 格兰杰因果 / EEG脑电数据分析
  8. 青龙面板拉京东库(7月12号更新)
  9. 1004: 惠民工程 (2013年中南大学研究生复试机试 )
  10. 汽车防滑控制不同控制策略车辆abs 门阈值 模糊pid