mirror of
https://github.com/apache/ant.git
synced 2025-05-19 14:34:45 +00:00
172 lines
7.6 KiB
HTML
172 lines
7.6 KiB
HTML
|
|
||
|
|
||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
|
<html lang="en">
|
||
|
<!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
|
||
|
<head>
|
||
|
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||
|
<title>Apache Ant - Antlib Descriptor</title>
|
||
|
<link type="text/css" href="../../page.css" rel="stylesheet">
|
||
|
<meta name="author" content="Antoine Levy-Lambert">
|
||
|
<meta name="email" content="antoine@apache.org">
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<p class="navpath">
|
||
|
<script src="../../breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
|
||
|
</p>
|
||
|
|
||
|
<div class="logobar">
|
||
|
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||
|
<tr>
|
||
|
<td align="left"><img border="0" alt="Apache Ant site" src="../../images/group-logo.gif"></td>
|
||
|
<td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../../images/project-logo.gif"></td>
|
||
|
<td align="right">
|
||
|
<form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
|
||
|
<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
|
||
|
<tr>
|
||
|
<td colspan="3"><img height="10" width="1" alt="" src="../../images/spacer.gif"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
|
||
|
<td nowrap="nowrap" class="searchcaption">
|
||
|
<input name="q" type="hidden">
|
||
|
<input size="15" id="query" type="text">
|
||
|
<img height="1" width="5" alt="" src="../../images/spacer.gif">
|
||
|
<input name="Search" value="Search" type="submit">
|
||
|
<br>
|
||
|
the Apache Ant site
|
||
|
</td>
|
||
|
<td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><img alt="" border="0" height="10" width="9" src="../../images/search-left.gif"></td>
|
||
|
<td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
|
||
|
<td><img alt="" border="0" height="10" width="9" src="../../images/search-right.gif"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</form>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</div>
|
||
|
|
||
|
<div class="tab">
|
||
|
<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
|
||
|
<tr>
|
||
|
<td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom">
|
||
|
<table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
|
||
|
<tr>
|
||
|
<td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-right.gif"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</td>
|
||
|
<td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom">
|
||
|
<table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
|
||
|
<tr>
|
||
|
<td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../../projects/index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Projects</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-right.gif"></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</div>
|
||
|
|
||
|
<div class="bluebar"></div>
|
||
|
|
||
|
<div class="menucontainer">
|
||
|
<div class="menu">
|
||
|
<ul>
|
||
|
</ul>
|
||
|
</div>
|
||
|
<img style="float: left" height="10" width="10" border="0" alt="" src="../../images/menu-left.gif">
|
||
|
<img style="float: right" height="10" width="10" border="0" alt="" src="../../images/menu-right.gif">
|
||
|
</div>
|
||
|
<div class="lightbluebar"> </div>
|
||
|
<div class="main">
|
||
|
<div class="content">
|
||
|
<h1 class="title">Antlib Descriptor</h1>
|
||
|
<h3 class="section">
|
||
|
<a name="antlib descriptor in the proposal"></a>
|
||
|
antlib descriptor in the proposal
|
||
|
</h3>
|
||
|
<pre class="code">
|
||
|
<antlib version="1.5" >
|
||
|
<task name="mkdir" class="org.apache.tools.ant.taskdefs.Mkdir"/>
|
||
|
...
|
||
|
<data-type name="fileset" class="org.apache.tools.ant.types.FileSet"/>
|
||
|
...
|
||
|
<role name="filter" class="org.apache.tools.ant.filters.ChainableReader"/>
|
||
|
...
|
||
|
<filter name="escapeunicode" class="org.apache.tools.ant.filters.EscapeUnicode"/>
|
||
|
</antlib>
|
||
|
</pre>
|
||
|
<p>
|
||
|
This is the layout of the antlib descriptor in the proposal. In each antlib jar file, the descriptor would be found under
|
||
|
META-INF/antlib.xml
|
||
|
</p>
|
||
|
<h3 class="section">
|
||
|
<a name="concerns concerning the location of the descriptor (Costin Manolache)"></a>
|
||
|
concerns concerning the location of the descriptor (Costin Manolache)
|
||
|
</h3>
|
||
|
<ol>
|
||
|
<li>
|
||
|
startup time. In order to load one library you need to process all
|
||
|
of them. It can be resolved with caching the result and looking at .jar
|
||
|
modifications. Most likely we'll have dozens of antlibs - and that'll only
|
||
|
grow in time. The processing of (all) TLDs at startup ( for tomcat ) adds a
|
||
|
very visible overhead on startup, and at least tomcat is a long-running
|
||
|
process.
|
||
|
</li>
|
||
|
<br />
|
||
|
<li>
|
||
|
Placing multiple antlibs in a single jar may be trickier.
|
||
|
</li>
|
||
|
<br />
|
||
|
<li>
|
||
|
It may place too much emphasis on the .jars and filesystem layout.
|
||
|
</li>
|
||
|
<br />
|
||
|
<li>
|
||
|
A bit harder to control ( as we know from c-logging and JAXP ),
|
||
|
</li>
|
||
|
<br />
|
||
|
<li>Explicit control over what antlibs are to be used - versus loading
|
||
|
everything. Well - I like "magic" loading, but a lot of things in ant
|
||
|
are done explicitely.
|
||
|
</li>
|
||
|
</ol>
|
||
|
<br />
|
||
|
<p>
|
||
|
I have no problem accepting a getResources() solution ( just like I'm
|
||
|
ok with using XML - but not any XML :-), but those issues should be
|
||
|
considered.
|
||
|
<br />
|
||
|
A lot of the "mess" in ant is the result of doing some things without
|
||
|
considering all implications or just as side effect of how code happened
|
||
|
to work. That's why I'm so strongly for breaking things down to individual
|
||
|
problems instead of a bundle solution.
|
||
|
</p>
|
||
|
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<p class="copyright">
|
||
|
Copyright © 2000-2003 The Apache Software Foundation. All rights reserved.
|
||
|
<script type="text/javascript" language="JavaScript"><!--
|
||
|
document.write(" - "+"Last Published: " + document.lastModified);
|
||
|
// -->
|
||
|
</script>
|
||
|
</p>
|
||
|
</body>
|
||
|
</html>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|