mirror of
https://github.com/apache/ant.git
synced 2025-05-18 14:04:48 +00:00
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274413 13f79535-47bb-0310-9956-ffa450edef68
457 lines
23 KiB
HTML
457 lines
23 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 - Having Problems?</title>
|
||
<link type="text/css" href="./page.css" rel="stylesheet">
|
||
<meta name="author" content="Conor MacNeill">
|
||
<meta name="email" content="">
|
||
</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="8"><img alt="" height="5" width="8" src="images/spacer.gif"></td><td valign="bottom">
|
||
<table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
|
||
<tr>
|
||
<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Home</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="./images/tabSel-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>
|
||
<li class="menuheader">Apache Ant
|
||
<ul>
|
||
<li>
|
||
<a href="./index.html">Welcome</a>
|
||
</li>
|
||
<li>
|
||
<a href="./license.html">License</a>
|
||
</li>
|
||
<li>
|
||
<a href="./antnews.html">News</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="menuheader">Documentation
|
||
<ul>
|
||
<li>
|
||
<a href="./manual/index.html">Manual</a>
|
||
</li>
|
||
<li>
|
||
<a href="./projects.html">Related Projects</a>
|
||
</li>
|
||
<li>
|
||
<a href="./external.html">External Tools and Tasks</a>
|
||
</li>
|
||
<li>
|
||
<a href="./resources.html">Resources</a>
|
||
</li>
|
||
<li>
|
||
<a href="./faq.html">Frequently Asked Questions</a>
|
||
</li>
|
||
<li>
|
||
<span class="sel">Having Problems?</span>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="menuheader">Download
|
||
<ul>
|
||
<li>
|
||
<a href="http://ant.apache.org/bindownload.cgi">Binary Distributions</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://ant.apache.org/srcdownload.cgi">Source Distributions</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="menuheader">Get Involved
|
||
<ul>
|
||
<li>
|
||
<a href="./mail.html">Mailing Lists</a>
|
||
</li>
|
||
<li>
|
||
<a href="./cvs.html">CVS Repositories</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
|
||
</li>
|
||
<li>
|
||
<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant&bug_severity=Enhancement">Enhancement Requests</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="menuheader">Project Management
|
||
<ul>
|
||
<li>
|
||
<a href="./contributors.html">Contributors</a>
|
||
</li>
|
||
<li>
|
||
<a href="./mission.html">Apache Ant Mission</a>
|
||
</li>
|
||
<li>
|
||
<a href="./guidelines.html">Project Guidelines</a>
|
||
</li>
|
||
<li>
|
||
<a href="./legal.html">Legal</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</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">Having Problems?</h1>
|
||
<h3 class="section">
|
||
<a name="Having Problems?"></a>
|
||
Having Problems?
|
||
</h3>
|
||
<p>
|
||
This page details some steps you can take to try and resolve
|
||
any problems you may be having with Ant. If you find you can't
|
||
resolve the problem, then this page will help you collect some of
|
||
the relevant information to provide in a bug report. This information
|
||
will help the Ant developers understand and resolve the problem.
|
||
Of course, not all the steps here will make sense for every problem
|
||
you may encounter - these are just some suggestions to point
|
||
you in the right direction.
|
||
</p>
|
||
<h4 class="subsection">
|
||
<a name="Read the Manual"></a>
|
||
Read the Manual
|
||
</h4>
|
||
<p>
|
||
The first step to take when you have a problem with Ant is to read
|
||
the <a href="manual/index.html">manual</a> entry for the task or
|
||
concept that is giving you trouble. In particular, check the
|
||
meaning of a task's attributes and nested elements. Perhaps an
|
||
attribute is available that would provide the behavior you require.
|
||
If you have problems with the manual itself, you can submit a
|
||
documentation bug report (see below) to help us improve the Ant
|
||
documentation.
|
||
</p>
|
||
<h4 class="subsection">
|
||
<a name="Examine Debug Output"></a>
|
||
Examine Debug Output
|
||
</h4>
|
||
<p>
|
||
If you're still having a problem, the next step is to try and
|
||
gather additional information about what Ant is doing.
|
||
Try running Ant with the <code>verbose</code> flag:
|
||
<br /><br />
|
||
<font face="verdana" size="-1">ant -verbose</font>
|
||
<br /><br />
|
||
or
|
||
<br /><br />
|
||
<font face="verdana" size="-1">ant -v</font>
|
||
<br /><br />
|
||
|
||
This will produce output that starts like the following:</p>
|
||
<table class="ForrestTable" cellspacing="1" cellpadding="4">
|
||
<tr>
|
||
<td colspan="1" rowspan="1"
|
||
valign="top" align="left">
|
||
|
||
Ant version 1.4.1 compiled on October 11 2001<br />
|
||
Buildfile: build.xml<br />
|
||
Detected Java version: 1.3 in: D:\usr\local\java\jdk13\jre<br />
|
||
Detected OS: Windows NT<br />
|
||
parsing buildfile D:\ant\build.xml
|
||
with URI = file:D:/ant/build.xml<br />
|
||
Project base dir set to: D:\ant<br />
|
||
<EFBFBD><EFBFBD>[property] Loading Environment env.<br />
|
||
<EFBFBD><EFBFBD>[property] Loading D:\ant\conf.properties<br />
|
||
Build sequence for target 'debug' is [debug]<br />
|
||
Complete build sequence is [debug, gensrc, compile, jar, test]<br />
|
||
. . .<br />
|
||
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<p>
|
||
You should be able to see from the trace more about what Ant
|
||
is doing and why it's taking a particular course of action.
|
||
If you need even more information, you can use the
|
||
<code>-debug</code> flag rather than
|
||
<code>-verbose</code>.
|
||
This will generally produce so much
|
||
output that you may want to save the output to a file and
|
||
analyze it in an editor. You can save the output using the
|
||
<code>-logfile <filename></code> flag, or
|
||
using redirection.
|
||
</p>
|
||
<p>
|
||
Once you have all this debug information, how can you use it
|
||
to solve your problem? That will depend on the task in question
|
||
and the nature of your problem. Each task logs different aspects
|
||
of its operation, but it should give you an idea of what is going
|
||
on. For example, the <code><javac></code> task logs the
|
||
reasons why it
|
||
chooses to compile particular class files and not others, along
|
||
with which compiler it is using and the arguments it will pass
|
||
to that compiler. The following partial trace shows why
|
||
<code><javac></code> is adding one class file but
|
||
skipping another.
|
||
This is followed by which compiler it will be using, the
|
||
arguments that will get passed to the compiler,
|
||
and a list of all the class files to be compiled.
|
||
</p>
|
||
<table class="ForrestTable" cellspacing="1" cellpadding="4">
|
||
<tr>
|
||
<td colspan="1" rowspan="1"
|
||
valign="top" align="left">
|
||
|
||
[javac] Test.java omitted as D:\classes\Test.class is up to date.<br />
|
||
[javac] Unset.java added as D:\classes\Unset.class is outdated.<br />
|
||
[javac] Compiling 1 source file to D:\classes<br />
|
||
[javac] Using classic compiler<br />
|
||
[javac] Compilation args: -d D:\classes -classpath D:\classes;<br />
|
||
D:\jdk118\classes.zip; -sourcepath D:\src\java -g:none<br />
|
||
[javac] File to be compiled:<br />
|
||
D:\src\java\Unset.java<br />
|
||
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<p>
|
||
In many cases, Ant tasks are wrappers around OS commands or
|
||
other Java classes. In debug mode, many of these tasks will
|
||
print out the equivalent command line, as the
|
||
<code><javac></code> task
|
||
output does. If you are having a problem, it is often useful to
|
||
run the command directly from the command line, in the same way
|
||
Ant is running it, and see if the problem occurs from there
|
||
as well. The problem may be in the command that is being run,
|
||
or it may be in the way the Ant task is running the command.
|
||
You can also see the effect of changing attribute values on the
|
||
generated command line. This can help you to understand whether
|
||
you are using the correct attributes and values.
|
||
</p>
|
||
<h4 class="subsection">
|
||
<a name="Has It Been Fixed?"></a>
|
||
Has It Been Fixed?
|
||
</h4>
|
||
<p>
|
||
After examining the debug output, if you still believe that the
|
||
problem you are having is caused by Ant, chances are that someone
|
||
else may have already encountered this problem, and perhaps it has
|
||
been fixed. The next step, therefore, may be to try a nightly build
|
||
of Ant to see if the problem has been fixed. Nightly builds for Ant
|
||
are available from the
|
||
<a href="http://cvs.apache.org/builds/ant/nightly/">
|
||
Ant web site</a>. While Ant nightly builds are typically quite
|
||
stable and are used by
|
||
<a href="http://cvs.apache.org/builds/gump/latest/">Gump</a>
|
||
to build many other Jakarta projects, these builds should
|
||
nonetheless be treated as experimental. Note that nightly builds
|
||
do not build many of the optional tasks the come with Ant.
|
||
A snapshot of these optional tasks is occasionally uploaded to
|
||
the nightly download
|
||
<a href="http://cvs.apache.org/builds/ant/nightly/optional/">
|
||
area</a>. However, even this snapshot does not contain every
|
||
optional task.
|
||
</p>
|
||
<h4 class="subsection">
|
||
<a name="Has It Been Reported?"></a>
|
||
Has It Been Reported?
|
||
</h4>
|
||
<p>
|
||
If the current nightly build doesn't resolve your problem, it is
|
||
possible that someone else has reported the issue. It is time to
|
||
look at the <a href="http://issues.apache.org/bugzilla/">
|
||
Apache Bug Database</a>. This system is easy to use, and it will
|
||
let you search the <a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Ant&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&order=bugs.bug_id">
|
||
currently open</a> and resolved bugs to see if your problem has
|
||
already been reported. If your problem has been reported, you can
|
||
see whether any of the developers have commented, suggesting
|
||
workarounds, or the reason for the bug, etc. Or you may have
|
||
information to add (see about creating and modifying bug reports
|
||
below), in which case, go right ahead and add the information.
|
||
If you don't have any additional information, you may just want
|
||
to vote for this bug, and perhaps
|
||
add yourself to the <code>CC</code> list to follow the progress
|
||
of this bug.
|
||
</p>
|
||
<h4 class="subsection">
|
||
<a name="Filing a Bug Report"></a>
|
||
Filing a Bug Report
|
||
</h4>
|
||
<p>
|
||
By this time, you may have decided that there is an unreported
|
||
bug in Ant. You have a few choices at this point. You can send
|
||
an email to the <code>user</code> mailing list
|
||
to see if
|
||
others have encountered your issue and find out how they may
|
||
have worked around it. If after some discussion, you feel it
|
||
is time to create
|
||
a bug report, this is a simple operation in the bug database.
|
||
Please try to provide as much information as possible in order
|
||
to assist the developers in resolving the bug. Please try to enter
|
||
correct values for the various inputs when creating the bug, such
|
||
as which version of Ant you are running, and on which platform,
|
||
etc. Once the bug is created, you can also add attachments to
|
||
the bug report.
|
||
</p>
|
||
<p>
|
||
What information should you include in your bug report? The
|
||
easiest bugs to fix are those that are most easily reproducible,
|
||
so it is really helpful if you can produce a small test case that
|
||
exhibits the problem. In this case, you would attach the build file
|
||
and any other files necessary to reproduce the problem, probably
|
||
packed together in an archive. If you can't produce a test case,
|
||
you should try to include a snippet from your build file and the
|
||
relevant sections from the verbose or debug output from Ant. Try
|
||
to include the header information where Ant states the version,
|
||
the OS and VM information, etc. As debug output is likely to be
|
||
very large, it's best to remove any output that is not
|
||
relevant. Once the bug is entered into the bug database, you
|
||
will be kept informed by email about progress on the bug. If
|
||
you receive email asking for further information, please try to
|
||
respond, as it will aid in the resolution of your bug.
|
||
</p>
|
||
<h4 class="subsection">
|
||
<a name="Asking for an Enhancement"></a>
|
||
Asking for an Enhancement
|
||
</h4>
|
||
<p>
|
||
Sometimes, you may find that Ant just doesn't do what you need it
|
||
to. It isn't a bug, as such, since Ant is working the way it is
|
||
supposed to work. Perhaps it is some additional functionality for
|
||
a task that hasn't been thought of yet, or maybe a completely new
|
||
task. For these situations, you will
|
||
want to raise an <i>enhancement request</i>. Enhancement requests
|
||
are managed using the same Apache Bug Database described above.
|
||
These are just a different type of bug report. If you look in the
|
||
bug database, you will see that one of the severity settings for
|
||
a bug is "Enhancement". Just fill the bug report in,
|
||
set the severity of the bug to "Enhancement", and
|
||
state in the description how you would like to have Ant enhanced.
|
||
Again, you should first check whether there are any existing
|
||
enhancment requests that cover your needs. If so, just add your
|
||
vote to these.
|
||
</p>
|
||
<h4 class="subsection">
|
||
<a name="Fixing the Bug"></a>
|
||
Fixing the Bug
|
||
</h4>
|
||
<p>
|
||
If you aren't satisfied with just filing a bug report, you can
|
||
try to find the cause of the problem and provide a fix yourself.
|
||
The best way to do that is by working with the latest code from CVS.
|
||
Alternatively, you can work with the source code available from the
|
||
<a href="http://ant.apache.org/srcdownload.cgi">
|
||
source distributions</a>. If you
|
||
are going to tackle the problem at this level, you may want to
|
||
discuss some details first on the <code>dev</code>
|
||
mailing list. Once you have a fix for the problem, you may submit
|
||
the fix as a <i>patch</i> to either the
|
||
<code>dev</code> mailing
|
||
list, or enter the bug database as described above and attach the
|
||
patch to the bug report. Using the bug database has the advantage
|
||
of being able to track the progress of your patch.
|
||
</p>
|
||
<p>
|
||
If you have a patch to submit and are sending it to the
|
||
<code>dev</code> mailing list,
|
||
prefix "[PATCH]"
|
||
to your message subject. Please include any relevant bug numbers.
|
||
Patch files should be created with the <code>-u</code>
|
||
option of the
|
||
<code>diff</code> or <code>cvs diff</code> command. For
|
||
example:<br /><br />
|
||
<font face="verdana" size="-1">
|
||
diff -u Javac.java.orig Javac.java > javac.diffs<br /><br />
|
||
</font>
|
||
or, if you have source from CVS:<br /><br />
|
||
<font face="verdana" size="-1">
|
||
cvs diff -u Javac.java > javac.diffs<br /><br />
|
||
</font>
|
||
|
||
Note: You should give your patch files meaningful names.
|
||
This makes it easier for developers who need to apply a number
|
||
of different patch files.
|
||
</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>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|