- 浏览: 77046 次
- 性别:
- 来自: 北京
最新评论
-
wteqiao:
[color=orange][/color]
annotation(@Retention) -
hanwesley:
谢谢,我在你的基础之上学习的。感觉还不错。
我理解的lucene原理(初级) -
DepthJava:
一直没找到,能完全解析EMial的方法。包括MIME解析
乱 ...
MIME协议分析(转) -
hardPass:
能看看你的mvc-config.xml 啊?
自制MVC框架:TonyMVC -
geek87:
非常好的资料..支持一下
spring2.5 注解技术
Ant 是什么?
Ant 是一个构建工具,它可以帮助我们将项目开发过程中需要完成的各种步骤组织起来,通过一个简易的方式来构建整个项目。 Ant 究竟能做什么呢?这取决于 Ant 的任务( Task ), Ant 有哪些任务,就能完成哪些工作!一些典型的任务是:编译 java 源代码、运行 java 程序、拷贝文件或目录、将编译完成的类打包等等。
当然, Ant 是一个开放的架构,任何人,都可以按照自己的方式,添加自己的任务( Task ),这需要遵守 Ant 的一些规范。
如何开始使用 Ant ?
1、 确保你的机器已经安装了 JDK ,确保你的 path 环境变量中包含有 java 虚拟机的运行程序,确保你的环境变量中有 JAVA_HOME 变量
2、 下载 ant 并解压
3、 设置 ANT_HOME 环境变量,指向 ant 解压根目录
4、 在 path 环境变量中,添加 ANT_HOME\bin 目录
5、 打开控制台,运行: ant
6、 如果能够运行 ant (忽略这些异常: Buildfile: build.xml does not exist! ),而不是出现诸如命令无法解释的错误,那么你的 ant 就安装成功了
Ant 的基本概念
Ant 的运行,靠的是一个构建脚本,默认的名称叫 build.xml ,如果你在任何目录下运行 ant 命令, Ant 将自动查找当前目录下有没有 build.xml 文件,如果有这个文件,就读取这个文件,并运行其中的默认 target 。
解释一下以上话的意思:
构建脚本
Ant 根据构建脚本的描述来执行任务!构建脚本是一个 xml 格式的文件。最简单的构建脚本是:
<?xml version="1.0" encoding="GBK"?>
<project name= " 测试脚本 " default= "copyfile" basedir= "." >
<target name= "copyfile" >
<copy file="d:/a.txt" todir="c:/temp" overwrite="true"/>
</target>
</project>
如果把以上内容放到一个 build.xml 文件中,然后运行 ant 命令, Ant 将执行拷贝文件的任务!
从这个最简单的构建脚本中,我们可以知道脚本的基本编写方法:
1、 脚本的根元素是: <project>
2、 所有的任务,必须通过一个 <target> 标签包围,一个 <target> 标签,可以包含多个任务。
3、 <copy> 标签描述了一个任务,这些任务必须放到一个 <target> 标签的内部, Ant 都可以使用哪些任务呢?请参考 Ant 的相关文档
4、 <project> 中可以包含多个 <target> ,如果不指定运行哪个任务(即直接运行 ant 命令),那么,将使用 <project> 标签中指定的 default 属性的 target 。
ant的文档在解压文件中
在cmd中把光标提示调整到build.xml所在的目录,然后运行ant。上面的命令即可成功执行。
构建脚本的命名
默认命名是 build.xml ,如果你的构建脚本的名称是 build.xml ,那么你可以直接运行 ant 命令,如果是其它的名称,如: mybuild.xml ,那么,你的命令行应该改为: ant –f mybuild.xml 。
运行特定任务?
运行: ant copyfile ,将运行的是被命名为 copyfile 的 target 。
Ant 的路径模式?
再看下面的 ant 构建脚本:
<?xml version="1.0" encoding="GBK"?>
<project name= " 测试脚本 " default= "copyfile" basedir= "." >
<target name= "copyfile" >
<copy todir="c:/temp" overwrite="true">
<fileset dir="d:">
<include name="*.txt"/>
</fileset>
<copy>
</target>
</project>
有没有注意到这个文件,跟第一个文件的变化?没错, <copy> 任务的 file 属性变了,现在是 *.txt ,可能你已经意识到,这个的意思是拷贝 d: 盘下所有的以 txt 为扩展名的文件到 c:/temp 目录中。完全正确!但是,究竟包不包含子目录下的 txt 文件呢?这就需要我们了解 ant 中的路径模式。 Ant 中的路径模式非常重要,很多地方都会用到,所以,我们首先来学习的就是 ant 的路径模式!
你可以查看 ANT_HOME/docs/manual/dirtasks.html#patterns 下的文档描述!里面有最详细的说明。
简单归纳一下:
* 符号代表 0 个或若干个字符。
? 符号,代表一个字符。
** 代表一颗目录树(目录和子目录全部包括,任何一级)。
Ant 任务
Ant 有很多内置的(即你安装完 ant 之后就可以直接使用的任务)任务,但是也可以添加自己定义的任务。如果你编写了自己的任务,或者你要引入一些不是 ant 自带的任务时,我们需要使用 <taskdef> 标签来定义:
比如:
<path id= "xdoclet.task.classpath" >
<fileset dir= "${xdoclet.home}/lib" >
<include name= "**/*.jar" />
</fileset>
<fileset dir= "${xdoclet.home}/plugins" >
<include name= "**/*.jar" />
</fileset>
</path>
<taskdef
name= "xdoclet"
classname= "org.xdoclet.ant.XDocletTask"
classpathref= "xdoclet.task.classpath"
/>
在这段文本 里,包含了很多内容:
1 、 <path> 元素,是用来定义一个路径的,通常是定义 classpath ,因为 classpath 可以包括众多的 jar 包,也可以包括众多的目录,所以可以使用 <fileset> 标签或 <pathelement> 等标签来定义这些路径。
2 、这些标签总体上来说都是轻易便能够看懂的。无需过多的解释。那个 <include> 标签中的 name 属性,正是一个路径模式,表示包括本目录(即 dir 属性定义的目录。)下的所有子目录中的 jar 文件。
定义完任务之后,就可以来使用它了,如:
<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} --> <!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->
<target name= " 生成 Hibernate 配置文件 " >
<xdoclet>
<fileset dir= "${src.dir}/com/bjsxt/oa/model" >
<include name= "**/*.java" />
</fileset>
<component
classname= "org.xdoclet.plugin.hibernate.HibernateConfigPlugin"
destdir= "${src.dir}"
version= "3.0"
hbm2ddlauto= "update"
jdbcurl= "jdbc:mysql://127.0.0.1/oa_200706"
jdbcdriver= "com.mysql.jdbc.Driver"
jdbcusername= "root"
jdbcpassword= "mysql"
dialect= "org.hibernate.dialect.MySQLDialect"
showsql= "true"
/>
</xdoclet>
</target>
具体如何使用,请参考关于这个 task 的相关说明文档。
发表评论
-
分页方法getScrollDate
2009-05-22 21:10 1185[code="java"] ... -
log4j 详细解读与common-logging结合
2009-04-12 21:17 1869Log4J的配置文件(Configuratio ... -
java代码中的serialVersionUID
2009-04-11 17:13 914一些java类中为什么需 ... -
jbpm开发步骤
2009-03-20 14:54 12201 新建一个工程项目 加入jbpm的包 加入H ... -
工作流基础(JBPM)
2009-03-16 19:35 1241网上jbpm教程:开发入门指南 1 流程定义 ... -
QQ留言功能的参考
2009-03-11 19:48 719http://www.tool.la/QQCode/ 在这个网 ... -
U盘装系统,甩掉光驱吧!
2009-02-22 09:24 1167U盘装系统,甩掉光驱吧! 注意:当把winpe放入到u盘 ... -
jbpm的启动cache 异常
2009-02-19 18:41 769jbpm的缓存问题。: http://hi.baidu.c ... -
dom4j
2009-02-17 19:15 917Document document = new SAXRead ... -
pager-taglib分页工具
2009-02-16 15:26 2785引用尚学堂paper-taglib的文章: 1、拷贝pag ... -
总结正则表达式
2009-02-08 21:31 719Email : /^\w+([-+.]\w+)*@\w ... -
正则表达式(基础)
2009-02-08 17:55 11401 用途: 字符串匹配 ... -
annotation(@Target @Document @Inherited)
2009-02-07 16:16 1583@Target 使用java.lang.annotation ... -
annotation(@Retention)
2009-02-06 20:50 8723Retention型态可以在您定义Annotation型态时, ... -
annotation(自定义部分)
2009-02-06 18:00 8171 mark类型的annotation public @int ... -
annotation(内置部分)
2009-02-06 11:12 783今天学习了annotation。这个是java1.5中加入的新 ... -
简单分页
2009-02-06 11:07 693分页学了有一段时间做了,今天想起来重新拾起来~~~ 给大家 ... -
Linux下jdk配置
2009-01-18 13:35 710阅读全文 类别:默认分类?查看评论 -
jsp 脚本提示卡问题解决
2008-09-27 08:27 1127http://topic.csdn.net/u/2008061 ...
相关推荐
在“ant介绍使用视频和项目”中,你可能会学习到以下内容: - **基本结构**:了解Ant构建文件的基本结构,如、、等元素的用法。 - **属性使用**:学习如何定义和使用Ant属性,以便在构建文件中传递参数。 - **文件...
### Ant介绍及基础知识详解 #### 一、Ant概述 Ant是一种强大的开源构建工具,主要用于Java项目的自动化构建。它提供了一种灵活且可扩展的方式,帮助开发者管理项目构建过程中的各种任务,例如编译源代码、运行Java...
### Ant介绍及基本使用指南 #### 一、Ant概述 Ant是Apache基金会下的一个开源项目,主要用于构建Java项目。作为一种跨平台的构建工具,Ant能够帮助开发者自动化一系列重复且耗时的任务,例如编译源代码、打包应用...
### ANT文件详解:深入理解ANT及其在项目构建中的应用 #### Ant的概念与起源 Ant,全称为Apache Ant,是一款开源的、跨平台的项目构建工具,最初由James Duncan Davidson开发,现归属于Apache软件基金会Jakarta...
Ant 是一个基于 Java 的构建工具,它主要用于自动化Java应用程序的构建过程,比如编译、打包、测试等。Ant 的设计灵感来源于经典的构建工具 make,但它避免了 make 的一些局限性,比如跨平台的问题和 Makefile 的...
1,什么是ant ant是构建工具 2,什么是构建 概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个 3,ant的好处 跨平台 --因为ant是使用java实现...
1. **Ant介绍**: Ant是一个开源的、跨平台的Java项目构建工具,它通过XML配置文件(如`build.xml`)定义任务,这些任务可以是编译源代码、创建JAR文件、运行测试、部署应用等。XML文件中包含了构建过程的步骤和...
1. **Ant介绍** - Ant的概念与起源 - Ant的主要功能与应用场景 - Ant与构建自动化的重要性 2. **Ant入门指南** - 安装与配置Ant - 创建第一个Ant脚本 - 常用构建任务介绍 3. **理解Ant数据类型与属性** - ...
**一、Ant介绍** Ant是一个由Apache软件基金会开发的开源工具,最初设计用于Java项目的构建,但现在已经可以用于处理各种语言的项目。Ant基于XML文件(通常命名为build.xml)来定义构建过程,包括编译源代码、创建...
1. **Ant介绍**: Apache Ant是Apache软件基金会的一个项目,它起源于Jakarta项目,旨在替代Make工具,成为Java项目的主要构建系统。Ant基于XML,其核心思想是通过XML文件(通常称为build.xml)来描述构建过程,...
二、Ant介绍 Apache Ant是Apache软件基金会的一个项目,它是一个基于XML的构建工具,可以替代Make或其他类似的工具。Ant的构建脚本(build.xml)定义了项目构建的各个任务和依赖关系。 1. XML配置:Ant的构建脚本是...
Ant的核心在于其XML格式的构建文件——build.xml,书中详细介绍了如何编写这个文件,包括定义项目(project)、目标(target)、任务(task)以及属性(property)。此外,还深入探讨了Ant的依赖关系管理、条件语句...
二、Ant 介绍 Ant 是一款基于 XML 的自动化构建工具,它的主要特点包括: * 任务驱动:Ant 使用任务驱动的方式来实现自动化构建,每个任务都可以独立执行。 *XML 配置文件:Ant 使用 XML 文件来描述构建过程,易于...
JAVA_Ant详细介绍与应用。 Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。 一.安装与配置 二...
此外,压缩包中的"Xdoclet介绍.doc"和"Ant介绍.doc"提供了更详细的资料,包括这两个工具的基本概念、用法、配置示例以及常见问题解答。通过深入阅读这些文档,你将能更全面地理解Xdocle和Ant的特性,从而更好地将...
Apache Ant 是一个广泛使用的Java构建工具,它的名字源于“蚂蚁”这一英文单词,寓意其能够像蚂蚁一样搬运、组织和构建项目。Ant 通过XML格式的构建文件(通常命名为`build.xml`)来定义任务和工作流程,使得开发者...
三、Apache Ant实例介绍 1. 创建build.xml:首先,我们需要创建一个名为build.xml的文件,包含如下内容: ```xml <project name="antDemo" default="compile" basedir="."> ${build.dir}/classes"/> ${...
ant的简单入门教程 1、ant介绍;2、ant安装;3、第一个ant脚本;4、整合ant;5、ant进阶;6、常用task;7、控制流程;8、实例分析;9、如何继续学习;10、ant使用cvs实例;11、Q&A
ant简介,包含ant的安装下载,简单的例子,以及ant标签的介绍和实例