1
|
|
2
|
A N T
|
3
|
|
4
|
|
5
|
What is it?
|
6
|
-----------
|
7
|
|
8
|
Ant is a Java based build tool. In theory it is kind of like "make"
|
9
|
without makes wrinkles and with the full portability of pure java code.
|
10
|
|
11
|
|
12
|
Why?
|
13
|
----
|
14
|
|
15
|
Why another build tool when there is already make, gnumake, nmake, jam,
|
16
|
and others? Because all of those tools have limitations that its original
|
17
|
author couldn't live with when developing software across multiple platforms.
|
18
|
|
19
|
Make-like tools are inherently shell based. They evaluate a set of
|
20
|
dependencies and then execute commands not unlike what you would issue on a
|
21
|
shell. This means that you can easily extend these tools by using or writing
|
22
|
any program for the OS that you are working on. However, this also means that
|
23
|
you limit yourself to the OS, or at least the OS type such as Unix, that you
|
24
|
are working on.
|
25
|
|
26
|
Makefiles are inherently evil as well. Anybody who has worked on them for any
|
27
|
time has run into the dreaded tab problem. "Is my command not executing
|
28
|
because I have a space in front of my tab!!!" said the original author of Ant
|
29
|
way too many times. Tools like Jam took care of this to a great degree, but
|
30
|
still use yet another format to use and remember.
|
31
|
|
32
|
Ant is different. Instead a model where it is extended with shell based
|
33
|
commands, it is extended using Java classes. Instead of writing shell
|
34
|
commands, the configuration files are XML based calling out a target tree
|
35
|
where various tasks get executed. Each task is run by an object which
|
36
|
implements a particular Task interface.
|
37
|
|
38
|
Granted, this removes some of the expressive power that is inherent by being
|
39
|
able to construct a shell command such as `find . -name foo -exec rm {}` but
|
40
|
it gives you the ability to be cross platform. To work anywhere and
|
41
|
everywhere. And hey, if you really need to execute a shell command, Ant has
|
42
|
an exec rule that allows different commands to be executed based on the OS
|
43
|
that it is executing on.
|
44
|
|
45
|
The Latest Version
|
46
|
------------------
|
47
|
|
48
|
Details of the latest version can be found on the Apache Ant
|
49
|
Project web site <http://ant.apache.org/>.
|
50
|
|
51
|
|
52
|
Documentation
|
53
|
-------------
|
54
|
|
55
|
Documentation is available in HTML format, in the docs/ directory.
|
56
|
For information about building and installing Ant, see
|
57
|
docs/manual/index.html
|
58
|
|
59
|
|
60
|
Licensing
|
61
|
---------
|
62
|
|
63
|
This software is licensed under the terms you may find in the file
|
64
|
named "LICENSE" in this directory.
|
65
|
|
66
|
This distribution includes cryptographic software. The country in
|
67
|
which you currently reside may have restrictions on the import,
|
68
|
possession, use, and/or re-export to another country, of
|
69
|
encryption software. BEFORE using any encryption software, please
|
70
|
check your country's laws, regulations and policies concerning the
|
71
|
import, possession, or use, and re-export of encryption software, to
|
72
|
see if this is permitted. See <http://www.wassenaar.org/> for more
|
73
|
information.
|
74
|
|
75
|
The U.S. Government Department of Commerce, Bureau of Industry and
|
76
|
Security (BIS), has classified this software as Export Commodity
|
77
|
Control Number (ECCN) 5D002.C.1, which includes information security
|
78
|
software using or performing cryptographic functions with asymmetric
|
79
|
algorithms. The form and manner of this Apache Software Foundation
|
80
|
distribution makes it eligible for export under the License Exception
|
81
|
ENC Technology Software Unrestricted (TSU) exception (see the BIS
|
82
|
Export Administration Regulations, Section 740.13) for both object
|
83
|
code and source code.
|
84
|
|
85
|
The following provides more details on the included cryptographic
|
86
|
software:
|
87
|
|
88
|
For the SSH family of tasks (<sshexec> and <scp>) Ant requires the
|
89
|
JSch <http://www.jcraft.com/jsch/index.html> library as well as the
|
90
|
Java Cryptography extensions
|
91
|
<http://java.sun.com/javase/technologies/security/>. Ant does not
|
92
|
include these libraries itself, but is designed to use them.
|
93
|
|
94
|
Thanks for using Ant.
|
95
|
|
96
|
The Apache Ant Project
|
97
|
<http://ant.apache.org/>
|