You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by st...@locus.apache.org on 2000/01/27 04:47:58 UTC
cvs commit: jakarta-ant LICENSE TODO README
stefano 00/01/26 19:47:58
Modified: . README
Added: . LICENSE TODO
Log:
some nice intro (preparing for a decent distro)
Revision Changes Path
1.5 +64 -42 jakarta-ant/README
Index: README
===================================================================
RCS file: /home/cvs/jakarta-ant/README,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- README 2000/01/23 11:37:41 1.4
+++ README 2000/01/27 03:47:58 1.5
@@ -1,46 +1,68 @@
-README file for the jakarta-ant workspace
------------------------------------------------------------------
-$Id: README,v 1.4 2000/01/23 11:37:41 stefano Exp $
-=================================================================
-This is the workspace for Ant, a Java based build tool.
+ A N T
+
-TODO List:
+ What is it?
+ -----------
+
+ Ant is a Java based build tool. In theory it is kind of like "make"
+ without makes wrinkles and with the full portability of pure java code.
+
+
+ Why?
+ ----
+
+ Why another build tool when there is already make, gnumake, nmake, jam,
+ and others? Because all of those tools have limitations that its original
+ author couldn't live with when developing software across multiple platforms.
+
+ Make-like tools are inherently shell based. They evaluate a set of
+ dependencies and then execute commands not unlike what you would issue on a
+ shell. This means that you can easily extend these tools by using or writing
+ any program for the OS that you are working on. However, this also means that
+ you limit yourself to the OS, or at least the OS type such as Unix, that you
+ are working on.
+
+ Makefiles are inherently evil as well. Anybody who has worked on them for any
+ time has run into the dreaded tab problem. "Is my command not executing
+ because I have a space in front of my tab!!!" said the original author of Ant
+ way too many times. Tools like Jam took care of this to a great degree, but
+ still use yet another format to use and remember.
+
+ Ant is different. Instead a model where it is extended with shell based
+ commands, it 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. Each task is run by an object which
+ implements a particular Task interface.
+
+ Granted, this removes some of the expressive power that is inherent by being
+ able to construct a shell command such as `find . -name foo -exec rm {}` but
+ it gives you the ability to be cross platform. To work anywhere and
+ everywhere. And hey, if you really need to execute a shell command, Ant has
+ an exec rule that allows different commands to be executed based on the OS
+ that it is executing on.
+
+ The Latest Version
+ ------------------
+
+ Details of the latest version can be found on the Apache Jakarta
+ Project web site <http://jakarta.apache.org/>.
+
+
+ Documentation
+ -------------
+
+ Documentation is available in HTML format, in the docs/ directory.
+
+
+ Licensing
+ ---------
+
+ This software is licensed under the terms you may find in the file
+ named "LICENSE" in this directory.
+
- * Improve documentation of how to use ant, how tasks are
- constructed, etc.
+ Thanks for using Ant.
- * Improve error reporting on BuildException catches. Error should
- state which task and which target was active at the time the
- BuildException was popped.
-
- * Improve error reporting on XML parse. Currently if the build.xml
- file is malformed we get some sort of odd SAX exception that could
- be better put.
-
- * Provide an AbstractFileCompareTask class with prebuilt "srcfile"
- and "destfile" setter methods and whose execute method calls a
- "updateNeeded" method.
-
- * Transform task -- XSLT
-
- * Output logs in XML -- this would be a global option of the project
- (log location, verboseness, etc)
-
- * Javac improvements -- support the "modern" 1.3 compiler
-
- * Investigate some sort of command line "execute an instance of a
- task with these parameters" entry point. Maybe a
- `org.apache.ant.TaskMain task org.foo.BarTask attrib1=foo
- attrib2=bar` type entry point?
-
- * Investigate some sort of "touch" functionality. Not sure how this
- could be done in a portable way -- maybe append 0 bytes to a file
- as a quick hack?
-
- * GUI front end -- examine tasks, add task properties, etc. Also,
- one button push build of a particular target.
-
- * Test harness. All software projects should have an automatable
- test suite. Ant is no exception to this rule.
-
+ The Apache Jakarta Project
+ <http://jakarta.apache.org/>
1.1 jakarta-ant/LICENSE
Index: LICENSE
===================================================================
/*
* ============================================================================
* The Apache Software License, Version 1.1
* ============================================================================
*
* Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modifica-
* tion, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. The end-user documentation included with the redistribution, if any, must
* include the following acknowledgment: "This product includes software
* developed by the Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself, if
* and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Ant" and "Apache Software Foundation" must not be used to
* endorse or promote products derived from this software without prior
* written permission. For written permission, please contact
* apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache", nor may
* "Apache" appear in their name, without prior written permission of the
* Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
* DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* on behalf of the Apache Software Foundation. For more information on the
* Apache Software Foundation, please see <http://www.apache.org/>.
*
*/
1.1 jakarta-ant/TODO
Index: TODO
===================================================================
TODO List:
* write a target rule that reacts on class presence or more generally, a way
to apply environment conditions that must be met in order for a target to
be executed. This is _vital_ for highly componentized systems where
non-core parts of the software may be skipped if the required classes
are not present in the build classpath.
* Improve error reporting on BuildException catches. Error should
state which task and which target was active at the time the
BuildException was popped.
* Improve error reporting on XML parse. Currently if the build.xml
file is malformed we get some sort of odd SAX exception that could
be better put.
* Provide an AbstractFileCompareTask class with prebuilt "srcfile"
and "destfile" setter methods and whose execute method calls a
"updateNeeded" method.
* Transform task -- XSLT
* Output logs in XML -- this would be a global option of the project
(log location, verboseness, etc)
* Javac improvements -- support the "modern" 1.3 compiler
* Investigate some sort of command line "execute an instance of a
task with these parameters" entry point. Maybe a
`org.apache.ant.TaskMain task org.foo.BarTask attrib1=foo
attrib2=bar` type entry point?
* Investigate some sort of "touch" functionality. Not sure how this
could be done in a portable way -- maybe append 0 bytes to a file
as a quick hack?
* GUI front end -- examine tasks, add task properties, etc. Also,
one button push build of a particular target.
* Test harness. All software projects should have an automatable
test suite. Ant is no exception to this rule.