`
chen592969029
  • 浏览: 109973 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ant property 总结

    博客分类:
  • Ant
阅读更多

特点

大小写敏感;

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

 

怎样设置

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简介与特点 Ant是Apache旗下的一款强大的构建工具,主要用于Java项目的自动化构建过程,如编译、测试、打包、部署等操作。它的核心优势在于其高度的可定制性和灵活性,使得开发者...

    ant 学习与总结

    ### Apache Ant 学习与总结 #### 一、Ant 是什么? Apache Ant 是一款基于 Java 的构建工具,用于将源代码和其他输入文件转换为可执行文件或安装包等形式。随着软件项目的复杂度增加,确保每次构建都能使用相同的...

    Ant自动构建总结

    标题中的“Ant自动构建总结”指的是Apache Ant,一个Java库和命令行工具,其目标是驱动构建过程。Ant使用XML来描述项目结构和构建过程,使得构建任务可以在不同的环境中重复执行,无需关心具体的操作系统或开发工具...

    ant学习笔记之(ant执行命令的详细参数和Ant自带的系统属性)

    《Ant学习笔记:详解Ant执行命令参数与系统属性》 ...总结,Ant作为Java项目的重要构建工具,其强大的命令参数和系统属性为开发者提供了极大的便利。熟练掌握这些知识点,将有助于提高开发效率,优化项目构建流程。

    java ant 详细解析文档

    本文档旨在深入探讨Ant中的`property`和`xmlinclude`特性,帮助读者更好地理解如何利用这些功能简化项目管理和构建流程。 #### 二、Property 的使用详解 **Property** 在Ant中主要用于定义和存储变量,这些变量...

    项目Ant配置实例一次下载各处使用

    总结来说,Ant是一个强大的构建工具,其灵活性和可扩展性使其成为Java项目中不可或缺的一部分。通过正确配置`build.xml`和相关的属性文件,我们可以创建一个高效且易于维护的构建系统,实现“一次配置,稍改即用”的...

    ant工具使用指南ant工具使用指南

    总结,Ant作为Java开发中的构建工具,其强大在于灵活性和可扩展性。通过理解并掌握Ant的基本概念和常用任务,开发者可以自定义构建流程,提高开发效率。无论是小型项目还是大型企业级应用,Ant都能提供有力的支持。...

    Ant入门教程,使用Ant自动生成JAR文件

    **Ant入门教程——使用Ant自动生成JAR文件** ...总结,Ant作为Java开发中的经典构建工具,对于理解构建过程和自动化有着重要的意义。通过学习和掌握Ant,你将能更好地管理你的项目,提高开发效率。

    ant 打包 java project 为ant

    总结起来,Ant作为Java项目管理的强大工具,可以帮助开发者自动化处理项目的构建过程,包括编译源码、打包JAR、运行测试等,从而提高开发效率和代码质量。理解并熟练使用Ant是Java开发者必备的技能之一。

    Apache Ant 实例介绍

    总结,Apache Ant 是一个强大的构建工具,通过XML配置文件,可以灵活地定义项目构建流程。虽然现代的构建工具如Maven和Gradle提供了更多的自动化和便利性,但Ant仍然在许多项目中发挥着重要作用,尤其是在需要高度...

    ant.jar下载

    在Ant的使用过程中,`&lt;property&gt;`元素用于设置和引用属性,这些属性可以是系统环境变量,也可以是项目特有的配置值。例如,开发者可以定义一个`src.dir`属性来表示源代码目录,然后在其他任务中引用这个属性,提高...

    ant配置ant配置

    总结来说,Ant是一个强大的构建工具,通过XML配置文件,开发者可以灵活地定义项目构建过程。理解并熟练掌握Ant配置,对于提升Java项目的开发效率和维护性至关重要。在实际工作中,不断学习和实践Ant的最佳实践,将使...

    apache-ant-1.7.1

    Ant允许定义自定义的任务和属性,通过编写Java类扩展Ant的任务接口,或者使用`&lt;property&gt;`标签来定义和引用属性,实现更灵活的构建逻辑。 7. 类库依赖管理 Ant 1.7.1虽然没有内置依赖管理功能,但可以通过`...

    Ant工具使用(教程)

    ### 六、总结 Ant作为Java项目构建的利器,提供了强大的自动化能力。熟练掌握Ant的使用,能够极大地提高开发效率,确保项目的构建过程稳定、可靠。通过不断地实践和学习,你可以更好地利用Ant来管理和维护复杂的项目...

    org.apache.tools.*需要的ant.jar包

    总结起来,Apache Ant是Java项目构建的重要工具,通过`ant.jar`,开发者可以在Java代码中直接调用Ant进行构建任务,实现灵活且高度定制化的构建流程。理解并熟练运用Ant对于Java开发者来说是提升效率和生产力的关键...

    ant打包工具

    总结,Ant作为一个强大的构建工具,为Java开发者提供了便利,使得项目构建过程自动化,提高了开发效率。通过阅读提供的“ant使用文档.doc”,可以更深入地了解Ant的使用技巧和高级特性,更好地利用Ant来管理和构建...

    ant导出jar包例子

    总结来说,Ant作为一个灵活且强大的构建工具,通过XML配置文件实现了项目构建的自动化。这个例子展示了如何使用Ant从源代码生成JAR包,包括创建目录、编译Java源代码和打包成JAR文件。了解并熟练掌握Ant,能够极大地...

Global site tag (gtag.js) - Google Analytics