| 6803 |
buildadm |
1 |
|
|
|
2 |
Apache Ant
|
|
|
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 manual/ directory.
|
|
|
56 |
For information about building and installing Ant, see
|
|
|
57 |
manual/install.html
|
|
|
58 |
The manual for the latest release of Ant is available online at
|
|
|
59 |
<https://ant.apache.org/manual/index.html>.
|
|
|
60 |
The latest version of the manual is available online at
|
|
|
61 |
<https://rawgit.com/apache/ant/master/manual/index.html>.
|
|
|
62 |
|
|
|
63 |
Licensing
|
|
|
64 |
---------
|
|
|
65 |
|
|
|
66 |
This software is licensed under the terms you may find in the file
|
|
|
67 |
named "LICENSE" in this directory.
|
|
|
68 |
|
|
|
69 |
This distribution includes cryptographic software. The country in
|
|
|
70 |
which you currently reside may have restrictions on the import,
|
|
|
71 |
possession, use, and/or re-export to another country, of
|
|
|
72 |
encryption software. BEFORE using any encryption software, please
|
|
|
73 |
check your country's laws, regulations and policies concerning the
|
|
|
74 |
import, possession, or use, and re-export of encryption software, to
|
|
|
75 |
see if this is permitted. See <http://www.wassenaar.org/> for more
|
|
|
76 |
information.
|
|
|
77 |
|
|
|
78 |
The U.S. Government Department of Commerce, Bureau of Industry and
|
|
|
79 |
Security (BIS), has classified this software as Export Commodity
|
|
|
80 |
Control Number (ECCN) 5D002.C.1, which includes information security
|
|
|
81 |
software using or performing cryptographic functions with asymmetric
|
|
|
82 |
algorithms. The form and manner of this Apache Software Foundation
|
|
|
83 |
distribution makes it eligible for export under the License Exception
|
|
|
84 |
ENC Technology Software Unrestricted (TSU) exception (see the BIS
|
|
|
85 |
Export Administration Regulations, Section 740.13) for both object
|
|
|
86 |
code and source code.
|
|
|
87 |
|
|
|
88 |
The following provides more details on the included cryptographic
|
|
|
89 |
software:
|
|
|
90 |
|
|
|
91 |
For the SSH family of tasks (<sshexec> and <scp>) Ant requires the
|
|
|
92 |
JSch <http://www.jcraft.com/jsch/index.html> library as well as the
|
|
|
93 |
Java Cryptography extensions
|
|
|
94 |
<http://java.sun.com/javase/technologies/security/>. Ant does not
|
|
|
95 |
include these libraries itself, but is designed to use them.
|
|
|
96 |
|
|
|
97 |
Thanks for using Ant.
|
|
|
98 |
|
|
|
99 |
The Apache Ant Project
|
|
|
100 |
<http://ant.apache.org/>
|