Ant:build.xml 结构
- Ant build.xml 结构
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
kk
kk
2
400
2016-04-18T09:13:00Z
2016-04-18T09:13:00Z
2
448
2557
21
5
3000
12.00
false
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat: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.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
table.MsoTableGrid
{mso-style-name:网格型;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-priority:59;
mso-style-unhide:no;
border:solid black 1.0pt;
mso-border-themecolor:text1;
mso-border-alt:solid black .5pt;
mso-border-themecolor:text1;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-border-insideh:.5pt solid black;
mso-border-insideh-themecolor:text1;
mso-border-insidev:.5pt solid black;
mso-border-insidev-themecolor:text1;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}
Ant build.xml 结构
最基本的build.xml结构:
|
<?xml version="1.0" encoding="UTF-8" ?> <project name="test" default="main"> <property name="test.prop1" value="hello, java"/> <target name="main"> <echo>${test.prop1}</echo> </target> </project> |
根元素是project,project下可以包括多个target,每个target下可以有多个task。
另外还可以指定task在执行过程中使用的数据,例如property。
build.xml的基本结构就是:project、target、task、datadef。
下面就针对这些元素分别说明:
project
每个ant的构建文件(build.xml)都必须以project元素做为根元素,
|
属性 |
描述 |
必要 |
|
name |
名称 |
否 |
|
default |
指定默认的target |
否 |
|
basedir |
计算build.xml中路径的基路径。默认值是build.xml文件所在的目录。 |
否 |
target
一个target包括多个task,通过多个task来达成想要的目标。一个target可以依赖于其它的targets。
|
<target name="A"/> <target name="B" depends="A"/> <target name="C" depends="B"/> <target name="D" depends="C,B,A"/> |
假如要执行D目标,实际上的执行过程是这样的:
Call-Graph: A --> B --> C --> D
Target的属性说明:
|
Attribute |
Description |
Required |
|
name |
名称 |
Yes |
|
depends |
指定依赖,用逗号分隔 |
No |
|
if |
如果一个property name,那么这个property的值必须被设置。 如果不是属性名,应该是一个可以被计算为true的表达式。 |
No |
|
unless |
如果一个property name,那么这个property的值必须没有被设置。如果不是属性名,应该是一个可以被计算为false的表达式。 |
No |
|
description |
描述 |
No |
|
extensionOf |
Adds the current target to the depends list of the namedextension-point. since Ant 1.8.0. |
No |
|
onMissingExtensionPoint |
What to do if this target tries to extend a missing extension-point. ("fail", "warn", "ignore"). since Ant 1.8.2. |
No. Not allowed unless extensionOf is present. Defaults to fail. |
示例:
|
<?xml version="1.0" encoding="UTF-8" ?> <project name="test" default="main"> <property name="test.prop1" value="hello, ant"/> <target name="main" depends="IF_SET,IF_UNSET,UNLESS_SET,UNLESS_UNSET"> <echo>${test.prop1}</echo> </target> <property name="test.a" value="hello, ant"/> <target name="IF_SET" if="test.a"> <echo>IF_SET</echo> </target> <target name="IF_UNSET" if="test.b"> <echo>IF_UNSET</echo> </target> <target name="UNLESS_SET" unless="test.a"> <echo>UNLESS_SET</echo> </target> <target name="UNLESS_UNSET" unless="test.b"> <echo>UNLESS_UNSET</echo> </target> </project> |
执行结果:
|
IF_SET: [echo] IF_SET IF_UNSET: UNLESS_SET: UNLESS_UNSET: [echo] UNLESS_UNSET main: [echo] hello, ant BUILD SUCCESSFUL Total time: 0 seconds |
task
task代表一个任务,target由一系统的task组成。
每个task都有3个属性:
|
Attribute |
Description |
Required |
|
id |
task实例的id,用于在其它地方引用这个任务时使用 |
No |
|
taskname |
task实例的别名,在执行task时,如果指定了,日志中可以看到别名 |
No |
|
description |
任务说明 |
No |
示例:
|
<?xml version="1.0" encoding="UTF-8" ?> <project default="hello"> <target name="hello"> <echo taskname="echoMessage" id="echo_01">Hello, execute Ant task : [echo]</echo> </target> </project> |
结果:
|
hello: [echoMessage] Hello, execute Ant task : [echo] BUILD SUCCESSFUL Total time: 0 seconds |
Ant内置了很多的task,可以在官方手册里找到:
http://ant.apache.org/manual/,另外官方手册中,也对这些Ant任务进行了归类:
data
Ant的task要执行,必不可少的是要使用数据。我将数据类型大致的分为几类:properties、path、fileset、selector、其他类型。
这些数据内容,将在下一次说明。
·datatype
Ant:build.xml 结构的更多相关文章
- Ant build.xml相关属性详解
关键字: ant build.xml Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令.当编译Linux内核及一些软件的源程序 ...
- 一个完整的JENKINS下的ANT BUILD.XML文件(Jenkins可以参考)
一个完整的JENKINS下的ANT BUILD.XML文件 <?xml version="1.0" encoding="UTF-8"?> <p ...
- Eclipse 运行ant build.xml
在命令行cmd运行mvn clean install,ant compiler,提示上述信息,是因为 maven的这个插件要求jdk1.6,但是本地电脑环境变量jdk版本为1.7.将JAVA_HOME ...
- Ant build xml中的各种变量解释
Ant build.xml中的各种变量 Ant环境变量分为四种: 1. build.properties文件中定义的变量 2. build.xml文件中定义的变量, 3. ...
- ANT build.xml文件详解
Ant的优点 跨平台性.Ant是用Java语言编写的,所示具有很好的跨平台性. 操作简单.Ant是由一个内置任务和可选任务组成的. Ant运行时需要一个XML文件(构建文件). Ant通过调用targ ...
- [置顶] ANT build.xml文件详解
Ant的优点 跨平台性.Ant是用Java语言编写的,所示具有很好的跨平台性. 操作简单.Ant是由一个内置任务和可选任务组成的. Ant运行时需要一个XML文件(构建文件). Ant通过调用targ ...
- Ant build.xml详解
Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令其实 ...
- Ant build.xml
Ant的概念可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令其实就 ...
- ant build.xml 解释!
Ant的概念 Make命令是一个项目管理工具,而Ant所实现功能与此类似.像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷.最初Ant开发者在开发跨 ...
随机推荐
- hibernate笔记--使用注解(annotation)方式配置单(双)向多对一的映射关系
前面几篇都是介绍的用配置文件来实现实体类到数据库表的映射,这种方式是比较麻烦的,每一个pojo类都需要写一个相应的*.hbm.xml,无疑增加了很多代码量,不过也有优点就是利于维护,为了方便开发,Hi ...
- 软件工程 Coding.net代码托管平台 Git初学者的使用总结 五步完成 程序,文件,文件夹的Git
一.前言 第一次用git相关的命令行,我使用的是Coding.net代码托管平台.Coding.net 自主打造的基于 Git 的代码托管平台,提供高性能的远端仓库,还有保护分支,历史版本分屏对比. ...
- myWaterfall - jQuery瀑布流布局插件
myWaterfall - jQuery瀑布流布局插件 Demo http://jsfiddle.net/q3011893/p5k2ogy8/embedded/result,html,css,js/ ...
- DotNet的JSON序列化与反序列化
JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...
- [Bug]2016-02
1.0 反序列化时的对象属性类型定义错误. 字符串类型用整型接收.(导致一直反序列化失败.) 2.0 HttpWebRequest myReq = (HttpWebRequest)HttpWebReq ...
- Castle.ActiveRecord多数据库配置
最近使用Castle.ActiveRecord框架,网上关于多数据支持的文章很少,因此有了这篇博文的产生. 开发工具VS2015,Sql Server2008R2 新建数据库,数据初始化脚本如下: - ...
- WPF筛选、排序和分组
可以通过CollectionViewSource或者CollectionView对视图进行排序.筛选和分组. 一.通过CollectionViewSource listingDataView是Coll ...
- discuz X3.1 关于分表 和 分表数据迁移
// *********** 关于读取分表的数据*********** { // forum_thread 分表代码片段 -- 帖子列表 { // 定位某个板块的帖子落在哪个表(forum_threa ...
- 断言与异常(Assertion Vs Exception)
在日常编程实践中,断言与异常的界限不是很明显,这也使得它们常常没有被正确的使用.我也在不断的与这个模糊的怪兽搏斗,仅写此文和大家分享一下我的个人看法.我想我们还可以从很多角度来区别断言和异常的使用场景 ...
- javascript 模式(2)——单例模式
单例模式是一种非常极端的模式,它保证了一个类在整个应用程序域中只有一个实体,意味着当你多次创建某一个类的实例的时候它们都是第一次创建的那个. 在Java或c#环境实现单例模式很简单,只需要定义静态变量 ...