特点
大小写敏感;
不可改变,先到先得,谁先设定,之后的都不能改变。
怎样设置
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
<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详细配置总结 #### 一、Ant简介与特点 Ant是Apache旗下的一款强大的构建工具,主要用于Java项目的自动化构建过程,如编译、测试、打包、部署等操作。它的核心优势在于其高度的可定制性和灵活性,使得开发者...
### Apache Ant 学习与总结 #### 一、Ant 是什么? Apache Ant 是一款基于 Java 的构建工具,用于将源代码和其他输入文件转换为可执行文件或安装包等形式。随着软件项目的复杂度增加,确保每次构建都能使用相同的...
标题中的“Ant自动构建总结”指的是Apache Ant,一个Java库和命令行工具,其目标是驱动构建过程。Ant使用XML来描述项目结构和构建过程,使得构建任务可以在不同的环境中重复执行,无需关心具体的操作系统或开发工具...
本文档旨在深入探讨Ant中的`property`和`xmlinclude`特性,帮助读者更好地理解如何利用这些功能简化项目管理和构建流程。 #### 二、Property 的使用详解 **Property** 在Ant中主要用于定义和存储变量,这些变量...
总结来说,Ant是一个强大的构建工具,其灵活性和可扩展性使其成为Java项目中不可或缺的一部分。通过正确配置`build.xml`和相关的属性文件,我们可以创建一个高效且易于维护的构建系统,实现“一次配置,稍改即用”的...
总结,Ant作为Java开发中的构建工具,其强大在于灵活性和可扩展性。通过理解并掌握Ant的基本概念和常用任务,开发者可以自定义构建流程,提高开发效率。无论是小型项目还是大型企业级应用,Ant都能提供有力的支持。...
**Ant入门教程——使用Ant自动生成JAR文件** ...总结,Ant作为Java开发中的经典构建工具,对于理解构建过程和自动化有着重要的意义。通过学习和掌握Ant,你将能更好地管理你的项目,提高开发效率。
总结起来,Ant作为Java项目管理的强大工具,可以帮助开发者自动化处理项目的构建过程,包括编译源码、打包JAR、运行测试等,从而提高开发效率和代码质量。理解并熟练使用Ant是Java开发者必备的技能之一。
总结,Apache Ant 是一个强大的构建工具,通过XML配置文件,可以灵活地定义项目构建流程。虽然现代的构建工具如Maven和Gradle提供了更多的自动化和便利性,但Ant仍然在许多项目中发挥着重要作用,尤其是在需要高度...
在Ant的使用过程中,`<property>`元素用于设置和引用属性,这些属性可以是系统环境变量,也可以是项目特有的配置值。例如,开发者可以定义一个`src.dir`属性来表示源代码目录,然后在其他任务中引用这个属性,提高...
总结来说,Ant是一个强大的构建工具,通过XML配置文件,开发者可以灵活地定义项目构建过程。理解并熟练掌握Ant配置,对于提升Java项目的开发效率和维护性至关重要。在实际工作中,不断学习和实践Ant的最佳实践,将使...
Ant允许定义自定义的任务和属性,通过编写Java类扩展Ant的任务接口,或者使用`<property>`标签来定义和引用属性,实现更灵活的构建逻辑。 7. 类库依赖管理 Ant 1.7.1虽然没有内置依赖管理功能,但可以通过`...
### 六、总结 Ant作为Java项目构建的利器,提供了强大的自动化能力。熟练掌握Ant的使用,能够极大地提高开发效率,确保项目的构建过程稳定、可靠。通过不断地实践和学习,你可以更好地利用Ant来管理和维护复杂的项目...
总结起来,Apache Ant是Java项目构建的重要工具,通过`ant.jar`,开发者可以在Java代码中直接调用Ant进行构建任务,实现灵活且高度定制化的构建流程。理解并熟练运用Ant对于Java开发者来说是提升效率和生产力的关键...
总结,Ant作为一个强大的构建工具,为Java开发者提供了便利,使得项目构建过程自动化,提高了开发效率。通过阅读提供的“ant使用文档.doc”,可以更深入地了解Ant的使用技巧和高级特性,更好地利用Ant来管理和构建...
总结来说,Ant作为一个灵活且强大的构建工具,通过XML配置文件实现了项目构建的自动化。这个例子展示了如何使用Ant从源代码生成JAR包,包括创建目录、编译Java源代码和打包成JAR文件。了解并熟练掌握Ant,能够极大地...