ANT之macrodef

macrodef 直接解释是宏, 理解上可以是自定义标签或者自定义函数

对于大型部署提高代码利用率

为了方便理解通过以下代码:

<macrodef name="macro-send-file">
  		<attribute name="host" />
		<attribute name="toPath" />
		<attribute name="file" />
		<attribute name="userID" />
		<attribute name="password" />
<sequential>
<echo>@{userID}:@{password}@@@{host}:@{toPath}</echo>
<scp verbose="false" trust="true" localFile="@{file}" todir="@{userID}:@{password}@@@{host}:@{toPath}" failonerror="true" />
<!-- sshexec trust="true" host="@{host}" username="@{userID}" password="@{password}" command="chmod -R u+rw,g+rwx @{toPath}/*.ear"/ --><sshexec trust="true" host="@{host}" username="@{userID}" password="@{password}" command="chown thangamm:wadmfsms  @{toPath}/*.ear"/>
<echo>Sent @{file} to @{host}:@{toPath}</echo>

<!-- delete build dir -->
<echo message="clean app project" />
<!-- after done, should clean the preparation folders but keep release folder -->
<delete dir="${build.dir.app}${file.separator}${name.bin}" failonerror="false" />
<delete dir="${build.dir.app}${file.separator}${name.docs}" failonerror="false" />
<delete dir="${build.dir.app}${file.separator}${name.reports}" failonerror="false" />
<delete dir="${build.dir.app}${file.separator}${name.stage}" failonerror="false" />

			<echo message="clean core project" />
			<delete dir="${build.dir.core}" failonerror="false" />		

			<echo message="clean web project" />
			<delete dir="${build.dir.web}" failonerror="false" />
		</sequential>
	</macrodef>

<macrodef name="macro-send-file">  name 属性说明这个自定义宏的名字 通过这个name 来调用

如下调用这个宏

<macro-send-file file="${file}" host="${autodeploy.host}" topath="${autodeploy.path}/${envName}" userid="${autodeploy.userID}" password="${autodeploy.password}" />

<attribute name="host" /> 表示宏的输入参数(相当于函数的参数)。在marcodef 中不同通过${}来调用attrbute 的值而要通过@{}。例如显示传入参数userID 是什么通过<echo>@{userID}.

<sequential> 相当于函数的body 就是你这个可以调用常用ant tag 如何copy javac mkdir jar war 等

补充链接

http://lhq1013.iteye.com/blog/1157234

时间: 2024-12-12 09:13:08

ANT之macrodef的相关文章

从源码角度深入分析ant

Ant的基本概念 首先是ant的基本概念:Project,Target,Tasks,Properties,Paths 1.Project <project> build.xml文件最顶层的元素,它有三个可选的属性:名称(name):工程的名称默认(default):默认的目标(target).基础目录(basedir):工程的根目录,工程所有的相对路径从此算起. 2. target 每个project定义了0个或者多个target,是project的次级目录. 一个target是一组要执行的t

windows+ant+git+tomcat中ant直接获取git项目部署注意点

最近项目搬迁到公司的"GitHub"上面原来的SVN的ant发布脚本要改下,于是百度ant获取git的方法太少了,windows平台上更是没有所以搞了两天,今天终于有点成果分享给大家. 1.服务器上也要安装git,还要配置git环境,在Path中加上C:\Program Files (x86)\Git\cmd(你的路径可能不同,就是Git\cmd路径) 2.GitHub上有两种路径http的那个要用户密码,我是没研究出来bat脚本自动输入密码,所以用git开头的路径 3.把公钥.ssh

ant 环境搭建遇到的问题

在搭建ant环境的时候,ant环境变量已经配置完成,但是在eclipse的ant窗口中运行build.xml的get-lib方法的是却报错了,报错信息如下: BUILD FAILED E:\workspace\int_0.1.0\build.xml:38: Problem: failed to create task or type antlib:org.apache.ivy.ant:configure Cause: The name is undefined. Action: Check th

android自动打包方法(ant+proguard+签名)

前段时间做了一个android的网游项目,现在优化减少体积和防止别人反编译,需要把编译后.class进行混淆,开始在网上看了一些关于 ProGuard的介绍,基本上都是使用ADT自带的打包方式,那个打包方式太慢了,还要手工输密码,一个字烦. 于是开始寻找ant+proguard+签名的打包方式,遗憾的是资料不是缺手就是断脚. 好吧,看来得食自己了,!@#¥@#!@#!@##¥@#¥!@#@ 转眼一周,我++,终于把东西搞出来 ps:我们项目还有一个特殊需求,要把版本号,推广ID打到包里去,方便做

转 Apache Ant 实现自动化部署

Apache Ant 实现自动化部署 Apache Ant 实现自动化部署 http://www.netkiller.cn/journal/java.ant.html Mr. Neo Chen (陈景峯), netkiller, BG7NYT 版权声明 转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明. 文档出处: http://netkiller.github.io http://netkiller.sourceforge.net 微信扫描二维码进入 Netkiller 微信订

jenkins+testng+ant+webdriver持续集成测试

我的需求: 1.webdriver代码放在svn上: 2.hudson(jenkins)去执行构建,它从svn上下载代码,并利用testng.xml来执行我设置好的测试套件: 3.接上,将结果放在指定位置: 我的设备: 开发工具:intellij idea 自动化工具:webdriver(selenium2.0) 持续集成工具:hudson(它的插件需要安装seleniumhq,testng,ant)这些都可以下包来安装也可以自动安装.ANT我用的是1.8.3版本 PS:我的svn及hudson

jmeter+ant+jenkins+mac报告优化

一.在上篇博客中生成的报告有两个问题: 1.date not defined 2.Min Time和Max Time显示成了NaN 二.Jmeter+Ant报告生成原理: 在解决问题之前,让我们先弄清楚Jmeter+Ant是生成报告的原理,知道原理后我们就可以很从容的解决问题了.另外,如果后续我们想定制报告也就很容易了. 1.在Jmeter的extras目录下,官方已经为我们提供了一个现成的实例,我们只需要在该目录下执行ant命令就可以生成一个数据文件Test.jtl和一个报告Test.html

Ant: Class not found: javac1.8

今天用ant,在选择build.xml,run as ant build后出错Ant: Class not found: javac1.8 分析问题:是否是eclipse中的ant版本和java的版本不匹配那? 解决方法如下: 1. 去下载一个最新版本的ant,解压到本地相应目录下,我下载的是apache-ant-1.9.7 2. 在eclipse中, windows-  references---Ant  ----run time,点击Ant home, 将路径制定到下载的ant目录下 3.

Maven和Ant的区别

最近做的项目中一直是在使用maven,但是要知道最早出来的构建工具是Ant,现在Ant依然有好多人再用,于是自己就抽出来时间,学习了一下Ant的基本的使用.这样也能跟好的理解Maven提供的新特性. 首先说一下他们各自的作用: Ant的作用:是一种基于Java的build工具 可以用ant编译java类,生成class文件 ant可以自定义标签.配置文件,用于构建. ant可以把相关层构建成jar包 . ant把整个项目生成web包,并发布到Tomcat Ant的优点: 跨平台性:Ant是纯Ja