特点

大小写敏感;

不可改变,先到先得,谁先设定,之后的都不能改变。

怎样设置

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.vm.specification.name

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

Xml代码
  1. <script
    language="javascript">
  2. propname =
    project.getProperty("anotherprop");
  3. project.setNewProperty("prop", propname);
  4. </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:

Xml代码
  1. <macrodef
    name="propertycopy">
  2. <attribute
    name="name"/>
  3. <attribute
    name="from"/>
  4. <sequential>
  5. <property
    name="@{name}"
    value="${@{from}}"/>
  6. </sequential>
  7. </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).

Xml代码
  1. <propertyhelper>
  2. <props:nested
    />
  3. </propertyhelper>
  4. <property
    name="foo"
    value="foo.value"
    />
  5. <property
    name="var"
    value="foo" />
  6. <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.

Xml代码
  1. <project
    xmlns:fl="antlib:it.haefelinger.flaka">
  2. <fl:install-property-handler/>
  3. <property
    name="foo"
    value="foo.value"/>
  4. <property
    name="var"
    value="foo" />
  5. <property
    name="buildtype"
    value="test"/>
  6. <property
    name="appserv_test"
    value="//testserver"/>
  7. <echo>
  8. #{${var}} = foo.value
  9. <!-- nested property -->
  10. #{appserv_${buildtype}}
  11. </echo>
  12. </project>

ant的设置properties的更多相关文章

  1. React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

    最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...

  2. eclipse设置properties文件的字体颜色

    点击Window->preferences->搜素properties ============================ 其它设置字体颜色设置        =========== ...

  3. [Spring] - 动态设置properties

    Spring的jar包用来做动态properties的getter/setter赋值方法: 1:需要的jar包: spring-beans-3.2.0.RC2.jar commons-logging- ...

  4. IntelliJ IDEA设置properties文件显示中文

    配置这里: 注意:上面是Default Settings,还需要在Settings中设置成上面一样的.

  5. 在 Apache Ant中设置Proxy服务器

    <target name="proxy"> <property name="proxy.host" value="https://m ...

  6. jmeter 使用ANT运行 设置自动停止时间

    1.直接看图

  7. 在Eclipse中集成Ant配置

    提要:本文将向你展示如何使用Eclipse设置为Ant所用的属性值和环境变量,并简要分析如何配置Ant编辑器以便从Eclipse内部操作Ant文件. 一. 修改Ant Classpath 在使用一个可 ...

  8. Ant :Property

     Property Ant 内置的Property 系统属性 Ant附加的属性 自定义Property Ant :Property properties是由key-value组成的集合,就是Java中 ...

  9. ant 介绍 http://blog.csdn.net/sunjavaduke/archive/2007/03/08/1523819.aspx

    转自: 本内容包含了Ant的历史简要介绍,Ant的功能以及Ant框架的介绍,并对下载安装使用Ant进行了示例介绍,同时通过一个Java程序讲解了Ant的基本使用方法. 1.       Ant简介:这 ...

随机推荐

  1. CF | Alyona and Mex

    Someone gave Alyona an array containing n positive integers a1, a2, ..., an. In one operation, Alyon ...

  2. Docker配置文件

    Docker 的 Registry 利用配置文件提供了一些仓库的模板(flavor),用户可以直接使用它们来进行开发或生产部署. 模板 在 config_sample.yml 文件中,可以看到一些现成 ...

  3. Docker仓库

    仓库是集中存放镜像文件的场所.有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分.实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(t ...

  4. 状态模式、职责链模式——省去if-else的繁琐结构

    小时候写日记都是这么写的:上午七点起床,八点之前洗脸刷牙吃早饭,十二点之前好好上课,中午一点,吃午饭,下午两点到六点,上课,下课,找请假,明天妈妈要带我去姥姥家,九点之前,看动画片,九点钟,收拾去姥姥 ...

  5. 利用git pull的勾子实现敏捷部署

    监听端 例如nginx或Python,php,rails等后端 git --git-dir=~/op/.git --work-tree=~/op pull git hooks端 位于.git/hook ...

  6. 干货:MySQL 索引原理及慢查询优化

    MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓"好马配好鞍",如何能够更好的使用它,已经成为开发工程师的必修 ...

  7. Android通过WebService实现图片的上传和下载(一)

    这篇文章将讲解Android如果通过访问WebService接口实现图片的上传和下载,当然这不但需要大家懂得Android还要懂得WebService技术,安卓属于客户端,而webservice则属于 ...

  8. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge

    WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...

  9. 6.2、Android Studio内存

    Android Monitor提供了一个Memory Monitor,所以你可以非常容易的监测应用性能和内存使用,可以发现无用的对象,本地内存泄漏和连接设备的内存使用.Memory Monitor显示 ...

  10. [ExtJS5学习笔记]第十一节 Extjs5MVVM模式下系统登录实例

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38815923 实例代码下载地址: http://download.csdn.net/d ...