ant已经有N多种替代方案了,但也不是ant就没有可用之外了,它的跨平台性还是有很大的优势。
android就经常是使用ant来构建的。
ant脚本中property默认是不能重新设置值的,第一次定义之后,在整个project执行过程中是不会再变的。
最简单的定义方式如下:
<property name="build.target" value="release" />
但是在我们的编译脚本中经常有可能需要用到可以变的值,另一种值设值方式可以满足我们:
<var name="build.target" value="release" />
定义变量可以随时重新设值,但是又有一点,如果我们需要使用condition来条件设值的时候,不好意思,不支持var。
<condition property="BATCH_INPUT" value="${env.BATCH_INPUT}" else="${local.BATCH_INPUT}"> <isset property="env.BATCH_INPUT" /> </condition>
直接点,要property支持重设,也不是不可能,在jdk 1.6之后,使用contrib可以支持,需要定义一个重设的脚本,需要下ant-contrib-0.6.jar到ant的lib目录下:
<scriptdef name="propertyreset" language="javascript" description="Allows to assign @{property} new value"> <attribute name="name"/> <attribute name="value"/> project.setProperty(attributes.get("name"), attributes.get("value")); </scriptdef>
同时增加以下一行声明:
<taskdef resource="net/sf/antcontrib/antlib.xml" />
用法如下:
<propertyreset name="chanel" value="${chanelname}"/>
这样子就可以直接使用新值了。
本帖完整的示例:
<project name="test" default="testA" basedir="."> <!--必须定义这个标签--> <taskdef resource="net/sf/antcontrib/antlib.xml" /> <scriptdef name="propertyreset" language="javascript" description="Allows to assign @{property} new value"> <attribute name="name"/> <attribute name="value"/> project.setProperty(attributes.get("name"), attributes.get("value")); </scriptdef> <property name="nameA" value="A"/> <!--重新定义property,不起作用--> <property name="nameA" value="B"/> <var name="nameB" value="A"/> <!--var可以随意设置值--> <var name="nameB" value="B"/> <property name="nameC" value="A"/> <!--使用自定义的脚本重新设置值--> <propertyreset name="nameC" value="B"/> <target name='testA'> <echo>${nameA}</echo> <echo>${nameB}</echo> <echo>${nameC}</echo> </target> </project>
相关推荐
Apache Ant 编译命令总结 Apache Ant 是一个基于 Java 的生成工具,主要用来将源代码和其他输入文件转换为可执行文件的形式,或者转换为可安装的产品映像形式。Ant 在软件开发中扮演着重要角色,确保在每次生成期间...
在“ant编译1.9版本”中,我们关注的是Apache Ant 1.9.6这个特定版本的使用方法和特性。 Apache Ant 1.9.6发布于2015年,作为Ant 1.9系列的一个稳定版本,它提供了一系列改进和修复,以提高构建效率和稳定性。这个...
本文将深入探讨如何使用`Ant`脚本来编译并创建一个`JAR`文件,以此来理解`Ant`脚本的工作原理和实际应用。 `Ant`是Apache软件基金会开发的一款开源构建工具,它使用XML格式定义构建过程,具有高度可配置性和可扩展...
在Ant中,`<project>`标签是构建文件的根元素,通常会包含项目的属性(`<property>`)和全局设置。例如,你可以定义源代码目录、输出目录以及jar包的名称。`<target>`标签则定义了一个个可执行的任务,它们之间可以...
- `ANT_HOME`:将值设置为你解压Ant的目录,例如`C:\ant`。 - `Path`:在已有的路径列表中添加`%ANT_HOME%\bin`,这使得你可以在任何目录下运行Ant命令。 **二、编写build.xml文件** Ant的核心是`build.xml`文件...
介绍了如何通过ant进行java web工程的编译操作的详细配置
在这个“Ant编译后的zookeeper源码”中,我们主要关注的是ZooKeeper 3.4.11版本,这是ZooKeeper的一个稳定版本,包含了丰富的功能和修复了许多已知的问题。Ant是Apache基金会的一个项目,它是一个Java构建工具,类似...
标题 "ant编译java工程" 涉及到的是使用Apache Ant工具来构建Java应用程序的过程。Apache Ant是一个基于XML的构建工具,它允许开发者通过声明式的方式定义项目构建任务,而不是采用程序化的方式。在Java开发中,Ant...
根据提供的文档内容,我们可以归纳和扩展出以下几个与ANT编译最佳实践相关的知识点: ### 1. 采用一致的编码规范 - **格式化XML构建文件**:虽然ANT并不关心XML文件是否格式美观,但为了提高可读性,建议对XML进行...
Ant编译环境配置 文章《使用ant编译之签名问题》的相关资料。主要讲一些Ant编译问题。
4. **编译源代码**:Ant使用`<javac>`任务来编译Java源代码。你需要指定源代码目录、输出目录以及任何必要的编译器选项。例如: ```xml ${src.dir}" destdir="${build.dir}"> **/*.jar"/> ``` 这将...
Ant的`<property>`元素用来设置属性值,`<path>`元素用来创建类路径。例如: ```xml <property name="src.dir" value="src"/> <property name="build.dir" value="build"/> ``` 这样,`src.dir`指向源码...
本文将深入探讨如何使用Ant工具来编译生成Flex的SWC文件,以此解决传统方式带来的繁琐和不便。 首先,让我们了解基本概念。`Ant`是一款由Apache软件基金会开发的Java构建工具,它基于XML编写构建脚本,可以跨平台...
`<target>`标签用于定义一系列要执行的任务,`<taskdef>`用于引入自定义任务,`<property>`用于设置属性值,`<copy>`用于复制文件,`<jar>`用于创建JAR文件,`<javac>`用于编译Java源代码,`<delete>`用于删除文件或...
ant编译staf插件
本篇将详细介绍如何使用Ant编译Tomcat源码,以及如何在MyEclipse环境中导入并运行Tomcat源码。 首先,Ant是Apache软件基金会开发的Java项目自动化构建工具,它能够执行编译、测试、打包等任务。在Apache Tomcat的...
### Ant安装编译操作手册知识点解析 #### 一、引言 - **编写目的**:本文档旨在指导软件发布人员如何正确安装与配置Apache Ant,解决在安装与使用过程中可能遇到的问题,确保能够顺利地使用Ant对Flex/Java工程项目...
"zilverline配置ant编译环境及简易安装" zilverline是一款开源搜索引擎,具有强大功能和完美的中文支持。为了让用户更方便地使用zilverline,我们需要配置ant编译环境并进行简易安装。下面是配置ant编译环境及简易...
本篇将深入探讨`ant递归编译测试源码`中的关键概念和用法,包括`import`、`macrodef`、`subant`、`if`、`available`以及`dirname`。 1. `import`: Ant的`import`元素允许你在不同的构建文件之间共享任务和目标。这...
这段代码告诉Ant从`src/main/java`目录下获取源代码,编译后放入`build/classes`目录,并且类路径包含`lib`目录下的所有JAR文件。 4. **打包与归档** 使用`jar`任务可以创建JAR或WAR文件,这是Java Web应用的标准...