Difference between revisions of "User:Minooz/RepoSyncProj/Ant"
< User:Minooz | RepoSyncProj
(→Tutorials) |
(→Tutorials) |
||
Line 36: | Line 36: | ||
:It should be noted, however, that Ant's depends attribute only specifies the order in which targets should be executed - it does not affect whether the target that specifies the dependency(s) gets executed if the dependent target(s) did not (need to) run. | :It should be noted, however, that Ant's depends attribute only specifies the order in which targets should be executed - it does not affect whether the target that specifies the dependency(s) gets executed if the dependent target(s) did not (need to) run. | ||
+ | |||
+ | :the if and unless attributes only enable or disable the target to which they are attached. They do not control whether or not targets that a conditional target depends upon get executed. In fact, they do not even get evaluated until the target is about to be executed, and all its predecessors have already run. | ||
+ | <source lang=java> | ||
+ | <target name="myTarget" depends="myTarget.check" if="myTarget.run"> | ||
+ | <echo>Files foo.txt and bar.txt are present.</echo> | ||
+ | </target> | ||
+ | |||
+ | |||
+ | <target name="myTarget.check"> | ||
+ | <condition property="myTarget.run"> | ||
+ | <and> | ||
+ | <available file="foo.txt"/> | ||
+ | <available file="bar.txt"/> | ||
+ | </and> | ||
+ | </condition> | ||
+ | </target> | ||
+ | </source> | ||
==Some Tips to remember== | ==Some Tips to remember== | ||
:In Cygwin in the ''build'' folder. Just typing <code>ant</code>, will build the default target of the project. But typing <code>ant assign1.test</code> for example, will start from mentioned target. | :In Cygwin in the ''build'' folder. Just typing <code>ant</code>, will build the default target of the project. But typing <code>ant assign1.test</code> for example, will start from mentioned target. | ||
:Also, option -f will build any files that's not named ''build.xml'' e.g. <code>ant -f buildHudson.xml</code> | :Also, option -f will build any files that's not named ''build.xml'' e.g. <code>ant -f buildHudson.xml</code> |
Revision as of 13:40, 14 October 2010
ANT
Apache Website
Tutorials
- Eclipse based Tutorial
- Notes from Jordan Anastasiade Notes and Apache Manual
- Ant is a Java-based build tool. Instead of a model where it is extended with shell-based commands, ant is extended using Java classes
- Instead of writing shell commands, the configuration files are XML-based, calling out a target tree where various tasks get executed.
- Installing Ant :
- Add the bin directory to your path. Set the ANT_HOME environment variable to the directory where you installed Ant. Assume ant is installed in c:\ant\. The following sets up the environment:
- set ANT_HOME=c:\ant
- set JAVA_HOME=...
- set PATH=%PATH%;%ANT_HOME%\bin
- ant buildfiles are written in XML – build.xml. Each buildfile contains one project and at least one (default) target.
<?xml version="1.0"?>
<!-- compile java files from all subdirectories -->
<project name="First" default="build" basedir=".">
<target name="build" >
<javac srcdir="."
debug="false"
optimize="false"
includes="**/*.java"
/>
</target>
</project>
- A project has three attributes: name: the name of the project. default: the default target to use when no target is supplied. basedir: the base directory from which all path calculations are done
- Each project defines one or more targets which are a set of task elements you want to execute
- When starting ant, you can select which target(s) you want to have executed
- A target has the following attributes: name: the name of the target. depends: a comma-separated list of names of targets. if: the name of the property that must be set in order for this target to execute
- It should be noted, however, that Ant's depends attribute only specifies the order in which targets should be executed - it does not affect whether the target that specifies the dependency(s) gets executed if the dependent target(s) did not (need to) run.
- the if and unless attributes only enable or disable the target to which they are attached. They do not control whether or not targets that a conditional target depends upon get executed. In fact, they do not even get evaluated until the target is about to be executed, and all its predecessors have already run.
<target name="myTarget" depends="myTarget.check" if="myTarget.run">
<echo>Files foo.txt and bar.txt are present.</echo>
</target>
<target name="myTarget.check">
<condition property="myTarget.run">
<and>
<available file="foo.txt"/>
<available file="bar.txt"/>
</and>
</condition>
</target>
Some Tips to remember
- In Cygwin in the build folder. Just typing
ant
, will build the default target of the project. But typingant assign1.test
for example, will start from mentioned target. - Also, option -f will build any files that's not named build.xml e.g.
ant -f buildHudson.xml