ant—学习记录一
<?xml version="1.0"?>
<project name="helloWorld">
<target name="sayHelloWorld">
<echo message="Hello,xutianhao"/>
</target>
</project>
<!-- ant_helloworld -->
<?xml version="1.0"?>
<project name="projectStudy" default="sayBaseDir" basedir="E:\apache-ant-1.8.2-bin\apache-ant-1.8.2">
<!-- default 代表默认要执行的动作 target-->
<!-- basedir为用户设置的属性 如果去掉的话再执行,结果是e:即ant构建文件的父目录 -->
<target name="sayBaseDir">
<!-- 命令行中执行的语句 ant SayBasedir 即执行sayBaseDir步骤 -->
<!-- 如果未指明执行的target 直接ant 会完成default指定的target-->
<echo message="the base dir is:${basedir}"/>
</target>
<!-- 如果说在一个project里有两个name相同的target
运行结果为
BUILD FAILED
E:\build.xml:20: Duplicate target 'sayBaseDir'-->
</project>
<?xml version="1.0"?> <project name="targetStudy">
<target name="targetA" if="ant.java.version">
<!-- 如果 if属性存在 所在 target将被执行 -->
<echo message="java.version:${ant.java.version}"/>
</target>
<target name="targetB" unless="amigo" depends="targetA">
<!-- 如果 unless属性存在 所在target将不被执行 -->
<!-- targetB依赖于targetA -->
<!-- 运行ant targetB 先执行targetA(被依赖的)再执行targetB -->
<description>a depend example!</description>
<echo message="The base dir is:${basedir}"/>
</target>
</project> <!--运行结果
E:\>ant targetB
Buildfile: E:\build.xml targetA:
[echo] java.version:1.7 targetB:
[echo] The base dir is:E:\ BUILD SUCCESSFUL
Total time: 0 seconds -->
<?xml version="1.0"?> <project name="targetStudy">
<target name="targetA">
<echo message="The base dir is:${basedir}"/>
<!-- project 基目录的绝对路径 代表当前目录-->
<echo message="The ant.file is:${ant.file}"/>
<!-- buildfile 的绝对路径 -->
<echo message="The ant.java.version is:${ant.java.version}"/>
<!-- ant 检测到的java版本 -->
<echo message="The ant.version is:${ant.version}"/>
<!-- ant 的版本 -->
<echo message="The ant.project.name is:${ant.project.name}"/>
<!-- 当前制定的project的name --> </target>
</project>
<!-- E:\>ant targetA
Buildfile: E:\build.xml targetA:
[echo] The base dir is:E:\
[echo] The base dir is:E:\build.xml
[echo] The base dir is:1.7
[echo] The base dir is:Apache Ant(TM) version 1.8.2 compiled on December 20
2010
[echo] The base dir is:targetStudy BUILD SUCCESSFUL
Total time: 0 seconds -->
<?xml version="1.0"?> <project name="targetStudy">
<property name="name" value="xutianhao"/>
<property name="age" value="23"/>
<target name="targetA">
<echo message="The base dir is:${name}"/>
<!-- 设置的姓名属性 xutianhao-->
<echo message="The base dir is:${age}"/>
<!-- 设置的年龄属性23--> </target>
</project>
ant—学习记录一的更多相关文章
- ant学习记录(复制-移动-删除-依赖综合测试)+fileset
<?xml version="1.0"?> <project name="targetStudy" default="mkdir&q ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- UWP学习记录11-设计和UI
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
- UWP学习记录10-设计和UI之控件和模式7
UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...
- UWP学习记录9-设计和UI之控件和模式6
UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...
- UWP学习记录8-设计和UI之控件和模式5
UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...
随机推荐
- JSON Editor 中文文档
JSON Editor JSON Editor 根据定义的JSON Schema 生成了一个Html 表单来对JSON进行编辑.它完整支持JSON Schema 的版本3和版本4,并且它集成了一些流行 ...
- [iOS]超详细Apache服务器的配置(10.10系统)
配置目的:有一个自己专属的测试服务器 我们需要做以下事情: 1.新建一个目录,存放网页 2.修改Apache配置文件httpd.conf - 修改两个路径 - 增加一个属性 - 支持PHP脚本 3.拷 ...
- 「Foundation」结构体
一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...
- jsp中的jquery失效以及引入js失败的问题
这段时间在试着看公司用的框架是怎么写的,看到项目中对jquery进一步封装的这一部分,所以自己试着写一些demo来模仿框架中的用法. 再一次的,又遇到了一个问题,jsp中引入js的问题,好久没有自己从 ...
- java和C#之间SOCKET通信的问题
转自:http://www.cdtarena.com/javapx/201307/9170.html java和C#之间SOCKET通信的问题 一.服务器端(使用java编写) /** * 监听客户端 ...
- 转: requirejs中文api (详细)
RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤.可以用它来加速.优化代码,但其主要目的还是为了代码的模块化.它鼓励在使用脚本时以modul ...
- STL assign 和swap
首先看下在整个container上面的复制. c1=c2 可以等同于 c1.erase(c1.begin(),c1.end()) //delete all elems in c1 c1.insert( ...
- 国外稳定的免费PHP空间byethost.com
byethost.com是一个老牌的免费空间商,从2006年起就開始提供免费空间了,其免费服务很稳定(看完下文你就知道有多稳定了). 提供5.5G的免费空间,200G的月流量,能够绑定50个域名,也能 ...
- vb.net 字符串的操作 应用
Module Module1 Sub Main() ' 定义3个字符串变量 Dim str1, str2, str3 As String '给str1,str2付初值 str1 = "Hel ...
- 小猪猪C++笔记基础篇(六)参数传递、函数重载、函数指针、调试帮助
小猪猪C++笔记基础篇(六) ————参数传递.函数重载.函数指针.调试帮助 关键词:参数传递.函数重载.函数指针.调试帮助 因为一些事情以及自己的懒惰,大概有一个星期没有继续读书了,已经不行了,赶紧 ...