ant的设置properties
特点
大小写敏感;
不可改变,先到先得,谁先设定,之后的都不能改变。
怎样设置
1 、设置 name 和 value 属性值,比如: <property name="srcdir" value="${basedir}/src"/>
2 、 设置 name 和 refid 属性值,比如: <property name="srcpath" refid="dao.compile.classpath"/> ,其中dao.compile.classpath 在别的地方定义。
3 、设置 name 和 location 属性值,比如: <property name="srcdir" location="src"/> ,即将 srcdir 的值设 置为:当前项目根目录的 /src 目录。
4 、设置 file 属性值,比如: <property file="build.properties"/> , 导入 build.properties 属性文件中的属性值
5 、设置 resource 属性值,比如: <propety resource="build.properties"/>, 导入 build.properties 属性文件中的属性值
6 、设置 url 属性值,比如: <property url="http://www.blogjava.net/wiflish/build.properties"/>, 导入http://www.blogjava.net/wiflish/build.properties 属性文件中的属性值。
7 、设置环境变量,比如: <property environment="env"/> ,设置系统的环境变量为前缀 env.
<property name="tomcat.home" value="${env.CATALINA_HOME}"/> 将系统的 tomcat 安装目录设置到 tomcat.home 属性中。
内置属性
Ant’s built-in properties:
|
basedir |
The absolute path of the project’s basedir. |
|
ant.file |
The absolute path of the buildfile. |
|
ant.version |
The version of Ant. |
|
ant.project.name |
The name of the project that is currently executing. |
|
ant.project.default-target |
The name of the currently executing project’s default target. |
|
ant.project.invoked-targets |
A comma separated list of the targets that have been specified on the command line when invoking the current. |
|
ant.java.version |
The JVM version Ant detected. |
|
ant.core.lib |
The absolute path of the ant.jar file. |
System properties
|
java.version |
Java Runtime Environment version |
|
java.vendor |
Java Runtime Environment vendor |
|
java.vendor.url |
Java vendor URL |
|
java.home |
Java installation directory |
|
java.vm.specification.version |
Java Virtual Machine specification version |
|
java.vm.specification.vendor |
Java Virtual Machine specification vendor |
|
Java Virtual Machine specification name |
|
|
java.vm.version |
Java Virtual Machine implementation version |
|
java.vm.vendor |
Java Virtual Machine implementation vendor |
|
java.vm.name |
Java Virtual Machine implementation name |
|
java.specification.version |
Java Runtime Environment specification version |
|
java.specification.vendor |
Java Runtime Environment specification vendor |
|
java.specification.name |
Java Runtime Environment specification name |
|
java.class.version |
Java class format version number |
|
java.class.path |
Java class path |
|
java.library.path |
List of paths to search when loading libraries |
|
java.io.tmpdir |
Default temp file path |
|
java.compiler |
Name of JIT compiler to use |
|
java.ext.dirs |
Path of extension directory or directories |
|
os.name |
Operating system name |
|
os.arch |
Operating system architecture |
|
os.version |
Operating system version |
|
file.separator |
File separator ("/" on UNIX) |
|
path.separator |
Path separator (":" on UNIX) |
|
line.separator |
Line separator ("\n" on UNIX) |
|
user.name |
User's account name |
|
user.home |
User's home directory |
|
user.dir |
User's current working directory |
用法
${key_name},如:${os.name},它将得到当前操作系统的名称。
需注意
1. 内置属性basedir
-- 不需要定义就可以直接使用,${basedir},得到当前工程的绝对路径
-- 当在<project>标签的basedir属性中指定basedir时,之后工程中出现的所有相对路径都是相对于这个basedir所指向的路径,且${basedir}的值也将变为<project>标签中的basedir属性所指定的值。
2. property的不变性在使用<available><ant><antcall>时会被打破
3. 可以在命令行通过-DpropertyName=propertyValue的方式指定property,注意,-D于propertyName之间没有空格,使用这种方式指定的属性最先被赋值,它是在执行build文件之前就已经赋值了的。
Q&A
How can I do something like <property name="prop" value="${${anotherprop}}"/> (double expanding the property)?
Without any external help you can not.
With <script/>, which needs external libraries, you can do
- <script
language="javascript"> - propname =
project.getProperty("anotherprop"); - project.setNewProperty("prop", propname);
- </script>
With AntContrib (external task library) you can do <propertycopy name="prop" from="${anotherprop}"/> .
With Ant 1.6 you can simulate the AntContribs <propertycopy> and avoid the need of an external library:
- <macrodef
name="propertycopy"> - <attribute
name="name"/> - <attribute
name="from"/> - <sequential>
- <property
name="@{name}"
value="${@{from}}"/> - </sequential>
- </macrodef>
With the 'props' antlib (external, but also from Ant) you could do the dereferencing with
${${anotherprop} - not just in the property task - instead everywhere in your buildfile (after registering the required property helper).
- <propertyhelper>
- <props:nested
/> - </propertyhelper>
- <property
name="foo"
value="foo.value"
/> - <property
name="var"
value="foo" /> - <echo> ${${var}} = foo.value
</echo>
With Flaka (external Ant Plugin) you could do the dereferencing with #{${anotherprop}} - not just in flaka tasks, but all tasks after installing flaka's property handler.
- <project
xmlns:fl="antlib:it.haefelinger.flaka"> - <fl:install-property-handler/>
- <property
name="foo"
value="foo.value"/> - <property
name="var"
value="foo" /> - <property
name="buildtype"
value="test"/> - <property
name="appserv_test"
value="//testserver"/> - <echo>
- #{${var}} = foo.value
- <!-- nested property -->
- #{appserv_${buildtype}}
- </echo>
- </project>
ant的设置properties的更多相关文章
- React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)
最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...
- eclipse设置properties文件的字体颜色
点击Window->preferences->搜素properties ============================ 其它设置字体颜色设置 =========== ...
- [Spring] - 动态设置properties
Spring的jar包用来做动态properties的getter/setter赋值方法: 1:需要的jar包: spring-beans-3.2.0.RC2.jar commons-logging- ...
- IntelliJ IDEA设置properties文件显示中文
配置这里: 注意:上面是Default Settings,还需要在Settings中设置成上面一样的.
- 在 Apache Ant中设置Proxy服务器
<target name="proxy"> <property name="proxy.host" value="https://m ...
- jmeter 使用ANT运行 设置自动停止时间
1.直接看图
- 在Eclipse中集成Ant配置
提要:本文将向你展示如何使用Eclipse设置为Ant所用的属性值和环境变量,并简要分析如何配置Ant编辑器以便从Eclipse内部操作Ant文件. 一. 修改Ant Classpath 在使用一个可 ...
- Ant :Property
Property Ant 内置的Property 系统属性 Ant附加的属性 自定义Property Ant :Property properties是由key-value组成的集合,就是Java中 ...
- ant 介绍 http://blog.csdn.net/sunjavaduke/archive/2007/03/08/1523819.aspx
转自: 本内容包含了Ant的历史简要介绍,Ant的功能以及Ant框架的介绍,并对下载安装使用Ant进行了示例介绍,同时通过一个Java程序讲解了Ant的基本使用方法. 1. Ant简介:这 ...
随机推荐
- CF | Alyona and Mex
Someone gave Alyona an array containing n positive integers a1, a2, ..., an. In one operation, Alyon ...
- Docker配置文件
Docker 的 Registry 利用配置文件提供了一些仓库的模板(flavor),用户可以直接使用它们来进行开发或生产部署. 模板 在 config_sample.yml 文件中,可以看到一些现成 ...
- Docker仓库
仓库是集中存放镜像文件的场所.有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分.实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(t ...
- 状态模式、职责链模式——省去if-else的繁琐结构
小时候写日记都是这么写的:上午七点起床,八点之前洗脸刷牙吃早饭,十二点之前好好上课,中午一点,吃午饭,下午两点到六点,上课,下课,找请假,明天妈妈要带我去姥姥家,九点之前,看动画片,九点钟,收拾去姥姥 ...
- 利用git pull的勾子实现敏捷部署
监听端 例如nginx或Python,php,rails等后端 git --git-dir=~/op/.git --work-tree=~/op pull git hooks端 位于.git/hook ...
- 干货:MySQL 索引原理及慢查询优化
MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓"好马配好鞍",如何能够更好的使用它,已经成为开发工程师的必修 ...
- Android通过WebService实现图片的上传和下载(一)
这篇文章将讲解Android如果通过访问WebService接口实现图片的上传和下载,当然这不但需要大家懂得Android还要懂得WebService技术,安卓属于客户端,而webservice则属于 ...
- iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge
WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...
- 6.2、Android Studio内存
Android Monitor提供了一个Memory Monitor,所以你可以非常容易的监测应用性能和内存使用,可以发现无用的对象,本地内存泄漏和连接设备的内存使用.Memory Monitor显示 ...
- [ExtJS5学习笔记]第十一节 Extjs5MVVM模式下系统登录实例
本文地址:http://blog.csdn.net/sushengmiyan/article/details/38815923 实例代码下载地址: http://download.csdn.net/d ...