|
|
@@ -3,9 +3,21 @@ |
|
|
|
<head> |
|
|
|
<meta http-equiv="Content-Language" content="en-us"> |
|
|
|
<title>Ant2 feature list</title> |
|
|
|
|
|
|
|
<style type="text/css"> |
|
|
|
.comment { |
|
|
|
COLOR: #900000; |
|
|
|
BACKGROUND: #ffa; |
|
|
|
} |
|
|
|
</style> |
|
|
|
|
|
|
|
</head> |
|
|
|
|
|
|
|
<body> |
|
|
|
<body bgcolor="#FFFFFF"> |
|
|
|
|
|
|
|
<p class="comment">If something looks like this, this is either a |
|
|
|
request for input or a "REVISIT" marker or similar.</p> |
|
|
|
|
|
|
|
<h1>Ant2 Goals</h1> |
|
|
|
|
|
|
|
<p>Even though Ant2 is expected to be incompatible with the |
|
|
@@ -35,7 +47,9 @@ |
|
|
|
hidden behind facade tasks.</li> |
|
|
|
|
|
|
|
<li>properties and data types will be unified so that they share |
|
|
|
the same namespace and inheritance rules.</li> |
|
|
|
the same namespace and inheritance rules. <i |
|
|
|
class="comment">Need to talk about how ${} expansion works for |
|
|
|
filesets and so on.</i></li> |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
@@ -50,10 +64,19 @@ |
|
|
|
|
|
|
|
<li>add scoping rules for properties so that not all of them |
|
|
|
will be inherited by sub-builds, only those that have been |
|
|
|
specified explicitly.</li> |
|
|
|
specified explicitly. <i class="comment">Fill in details once |
|
|
|
they've been sorted out.</i></li> |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
<p>The front-ends for Ant2 shall be smart enough to automatically |
|
|
|
detect the required libraries (like <code>tools.jar</code>), the |
|
|
|
use of native scripts shall be kept to a minimum.</p> |
|
|
|
|
|
|
|
<p>Build file writers can attach a message to targets that will be |
|
|
|
presented to the user if that target is going to be skipped (based |
|
|
|
on the if/unless attribute of the target).</p> |
|
|
|
|
|
|
|
<h2>Extensibility</h2> |
|
|
|
|
|
|
|
<p>Ant2 like Ant1 uses build files written in XML as its main |
|
|
@@ -68,16 +91,40 @@ |
|
|
|
Ant. Ant will automatically know all tasks contained in task |
|
|
|
libraries that have been placed into a special directory - in |
|
|
|
addition task libraries can be referenced and used in a build file |
|
|
|
explicitly.</p> |
|
|
|
explicitly. <i class="comment">Fill in details once they've been |
|
|
|
sorted out.</i></p> |
|
|
|
|
|
|
|
<p>It has become apparent, that several "aspects" of |
|
|
|
tasks are so common that task writers find themselves duplicating |
|
|
|
code all over again - things like classpath handling or "do |
|
|
|
we stop the build if this task fails?" functionality for |
|
|
|
example. Ant2 will provide a way to let the user attach an |
|
|
|
"aspect handler" to a project - all attributes that live |
|
|
|
in a certain namespace are going to be passed to this handler. <i |
|
|
|
class="comment">Need to talk about TaskContext here.</i></p> |
|
|
|
|
|
|
|
<p>Ant2 will farm out common functionality from tasks into utility |
|
|
|
classes so that task writers can benefit from a tested and stable |
|
|
|
framework - they shouldn't need to deal with existing tasks |
|
|
|
directly (like some tasks "abuse" the |
|
|
|
<code><touch></code> task in Ant1).</p> |
|
|
|
|
|
|
|
<h1>New/Modified Features</h1> |
|
|
|
|
|
|
|
<p>Ant2 will run the build process fully dynamically, which means |
|
|
|
that task won't be instantiated before they are actually being run |
|
|
|
and <code>${}</code> expansion will see the very latest value of a |
|
|
|
property. It will be possible to reassign values of properties via |
|
|
|
a built-in task.</p> |
|
|
|
|
|
|
|
<h2>Compatibility with Ant1</h2> |
|
|
|
|
|
|
|
<p>Ant2 is going to break Ant1 in several ways:</p> |
|
|
|
|
|
|
|
<ul> |
|
|
|
|
|
|
|
<li>Tasks written for Ant1 won't work in Ant2 as the API of |
|
|
|
Ant's core and the names of utility classes are going to |
|
|
|
<li>Tasks written for Ant1 won't work in Ant2 as the API of |
|
|
|
Ant's core and the names of utility classes are going to |
|
|
|
change. There will probably be adaptors and utility classes to |
|
|
|
ease the transition for task writers.</li> |
|
|
|
|
|
|
@@ -95,8 +142,73 @@ |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
<h2>Support Integration of Ant Into Other Tools</h2> |
|
|
|
|
|
|
|
<p>Ant2 will have a clear separation between the front-end that is |
|
|
|
responsible for user interactions, the object model that |
|
|
|
represents the project to build and the part of Ant that runs the |
|
|
|
build process itself <i class="comment">Name that TaskEngine, |
|
|
|
ProjectEngine, ExecutionEngine or what?</i>. This separation is |
|
|
|
expected to ease the integration of Ant (or parts of it) into |
|
|
|
other products.</p> |
|
|
|
|
|
|
|
<p>Ant2 itself will include a command line front-end and Antidote |
|
|
|
will become the GUI front-end to it. Other front-ends like a |
|
|
|
servlet front-end are expected <i class="comment">outside of |
|
|
|
Ant's core</i> as well.</p> |
|
|
|
|
|
|
|
<p>In addition to this separation, the following features should |
|
|
|
help people who want to integrate Ant into their products:</p> |
|
|
|
|
|
|
|
<ul> |
|
|
|
|
|
|
|
<li>It will be possible to cancel a running build process.</li> |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
<h2>More Control for Users and Build File Writers</h2> |
|
|
|
|
|
|
|
<p>Ant2 will use a <code>BuildListener</code> concept similar to |
|
|
|
the one of Ant1 but may provide a richer set of events. It will be |
|
|
|
possible to attach and detach listeners to a build process from |
|
|
|
within the build file and to modify the behavior of attached |
|
|
|
listeners.</p> |
|
|
|
|
|
|
|
|
|
|
|
<h2>Documentation System</h2> |
|
|
|
|
|
|
|
<p>All tasks will be documented in XML files using a common DTD <i |
|
|
|
class="comment">Still need to define it</i> - task libraries are |
|
|
|
expected to include the documentation using this DTD inside the |
|
|
|
library itself.</p> |
|
|
|
|
|
|
|
<h2>Better Subbuild Handling</h2> |
|
|
|
|
|
|
|
<p class="comment">Is there something beyond "should become |
|
|
|
better" right now?</p> |
|
|
|
|
|
|
|
<h1>Rejected Features</h1> |
|
|
|
|
|
|
|
<p>This is list is not complete, it just highlights some of the |
|
|
|
rejected features and tries to explain why they've been |
|
|
|
rejected.</p> |
|
|
|
|
|
|
|
<p>For a complete listing of all requested features, see <a |
|
|
|
href="requested-features.html">requested-features.html</a>. The |
|
|
|
discussion on all topics can be followed in the <a |
|
|
|
href="http://marc.theaimsgroup.com/?l=ant-dev&r=1&w=2">archives |
|
|
|
for ant-dev</a> in threads starting from 2001-03-21 - the subject |
|
|
|
lines contained either <code>[VOTE]</code> or |
|
|
|
<code>[DISC]</code>.</p> |
|
|
|
|
|
|
|
<h1>Ideas for New Tasks and Tools</h1> |
|
|
|
|
|
|
|
<p>Please refer to <a |
|
|
|
href="requested-features.html">requested-features.html</a> in the |
|
|
|
section "I. Things that don't affect the core but are |
|
|
|
requests for new tasks or enhancements to existing tasks." |
|
|
|
for this.</p> |
|
|
|
|
|
|
|
<hr> |
|
|
|
<p align="center">$Id$</p> |
|
|
|
<p align="center">Copyright © 2001 Apache Software |
|
|
|