ant编译重设property的值
来源:互联网 发布:越南陆军实力 知乎 编辑:程序博客网 时间:2024/05/21 11:29
引自:http://qiang106.iteye.com/blog/2097833
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>
0 0
- ant编译重设property的值
- ant的property使用
- 【ant】ant property 总结
- ant编译的问题
- ant property 总结
- ant system property
- ant property总结
- ant property 总结
- ant的高级使用,ant命令详解,ant打包,ant编译后打包去掉jar文件
- Ant编译
- CentOS6+ANT编译环境_和ant的一些属性
- 编译选项的统一管理:Property Manager
- 重设mysql的root密码
- 重设mysql的root密码
- ant property标签粗解
- Ant property标签粗解
- jakarta-ant的使用(java编译工具)
- jakarta-ant的使用(java编译工具)
- git指令
- Spring的配置文件实例
- 传销自
- Curator框架
- MVC与MVVM
- ant编译重设property的值
- linux查看外网IP
- 本人的博客迁移到多个平台,小伙伴们多多支持……
- android有关网络连接的方法
- Contiki Timers 详解
- 创业思路2:人性&公司
- Android-自动化埋点
- 在网页中嵌入Base64编码文件
- Repeated DNA Sequences 位操作