Ant: Difference between revisions

From miki
Jump to navigation Jump to search
Line 1: Line 1:
'''ant''' is the Java based make tool.
'''ant''' is the Java based make tool.


== Quick Overview ==
<source lang=xml>
<!-- Display a message -->
<echo message="ANT_HOME is set to = ${env.ANT_HOME}"/>
</source>
== Properties ==
== Properties ==
=== Properties are immutable ===
=== Properties are immutable ===

Revision as of 13:02, 10 August 2012

ant is the Java based make tool.

Quick Overview

<!-- Display a message -->
<echo message="ANT_HOME is set to = ${env.ANT_HOME}"/>

Properties

Properties are immutable

<project name="demo" default="demo">
    <target name="demo" >
        <property name="aProperty" value="foo" />
        <property name="aProperty" value="bar" /> <!-- already defined; no effect -->
        <echo message="Property value is '${aProperty}'" /> <!-- Displays 'foo' -->
    </target>
</project>

Environment Variables

<property environment="env"/>

provides all environment variables as Ant properties prefixed by "env.". For example, CLASSPATH would be accessible in Ant as ${env.CLASSPATH} (ref [1]).

Define property from environment with default value

Reference: [2]

First solution, using a conditional part:

<property environment="env"/>
<condition property="fileTargetName" value="${env.RELEASE_VER}" else="dev">
    <isset property="env.RELEASE_VER" />
</condition>

From the manual, documentation on the <condition> tag:

Attribute Description Required
property The name of the property to set. Yes
value The value to set the property to. Defaults to "true". No
else The value to set the property to if the condition evaluates to false. By default the property will remain unset. Since Ant 1.6.3 No

Second solution, using the fact that properties are immutable:

<property environment="env"/>
<property name="env.RELEASE_VER" value="dev"/>

Compilation

<javac source="1.4" srcdir="${sources.dir}" destdir="${classes.dir}/" listfiles="true" debug="true" includeAntRuntime="false" includeJavaRuntime="false" >
  <bootclasspath refid="J9Classpath" />
  <classpath refid="compile.extraclasspath" />
</javac>

To add a compilation argument, for instance change encoding to iso-8859-1:

<javac source="1.4" srcdir="${sources.dir}" destdir="${classes.dir}/" listfiles="true" debug="true" includeAntRuntime="false" includeJavaRuntime="false" >
  <compilerarg line="-encoding iso-8859-1"/> 
  <bootclasspath refid="J9Classpath" />
  <classpath refid="compile.extraclasspath" />
</javac>