﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-梦幻之旅-随笔分类-ANT</title><link>http://www.blogjava.net/hwpok/category/47415.html</link><description>DEBUG - 天道酬勤</description><language>zh-cn</language><lastBuildDate>Fri, 25 Nov 2011 13:16:02 GMT</lastBuildDate><pubDate>Fri, 25 Nov 2011 13:16:02 GMT</pubDate><ttl>60</ttl><item><title>ant报"Only antlib URIs can be located from the URI alone,not the URI"错误  </title><link>http://www.blogjava.net/hwpok/archive/2011/11/22/364591.html</link><dc:creator>惠万鹏</dc:creator><author>惠万鹏</author><pubDate>Tue, 22 Nov 2011 13:11:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2011/11/22/364591.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/364591.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2011/11/22/364591.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/364591.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/364591.html</trackback:ping><description><![CDATA[<div>原因是&lt;taskdef ...&gt;缺少name="obfuscate"</div><img src ="http://www.blogjava.net/hwpok/aggbug/364591.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">惠万鹏</a> 2011-11-22 21:11 <a href="http://www.blogjava.net/hwpok/archive/2011/11/22/364591.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ANT 打jar包</title><link>http://www.blogjava.net/hwpok/archive/2010/12/20/341145.html</link><dc:creator>惠万鹏</dc:creator><author>惠万鹏</author><pubDate>Mon, 20 Dec 2010 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2010/12/20/341145.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/341145.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2010/12/20/341145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/341145.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/341145.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="javaTest"</span><span style="color: #ff0000">&nbsp;default</span><span style="color: #0000ff">="jar"</span><span style="color: #ff0000">&nbsp;basedir</span><span style="color: #0000ff">="."</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="clean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">delete&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="build"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">path&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="classpath"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">fileset&nbsp;&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="lib"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">include&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="*.jar"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">fileset</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">path</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="compile"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="clean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mkdir&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">javac&nbsp;</span><span style="color: #ff0000">srcdir</span><span style="color: #0000ff">="src"</span><span style="color: #ff0000">&nbsp;destdir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #ff0000">&nbsp;encoding</span><span style="color: #0000ff">="UTF-8"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">classpath&nbsp;</span><span style="color: #ff0000">refid</span><span style="color: #0000ff">="classpath"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">javac</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="run"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="compile"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">java&nbsp;</span><span style="color: #ff0000">classname</span><span style="color: #0000ff">="Main"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&lt;classpath&nbsp;refid="classpath"/&gt;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">pathelement&nbsp;</span><span style="color: #ff0000">path</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">java</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="copyConfig"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="run"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">copy&nbsp;</span><span style="color: #ff0000">todir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">fileset&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="src"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">include&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="*.png"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">fileset</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">copy</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jar"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="copyConfig"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">pathconvert&nbsp;</span><span style="color: #ff0000">property</span><span style="color: #0000ff">="mf.classpath"</span><span style="color: #ff0000">&nbsp;pathsep</span><span style="color: #0000ff">="&nbsp;"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mapper</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">chainedmapper</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">flattenmapper&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">globmapper&nbsp;</span><span style="color: #ff0000">from</span><span style="color: #0000ff">="*"</span><span style="color: #ff0000">&nbsp;to</span><span style="color: #0000ff">="lib/*"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">chainedmapper</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">mapper</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">path&nbsp;</span><span style="color: #ff0000">refid</span><span style="color: #0000ff">="classpath"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">pathconvert</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jar&nbsp;</span><span style="color: #ff0000">destfile</span><span style="color: #0000ff">="main.jar"</span><span style="color: #ff0000">&nbsp;basedir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">manifest</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">attribute&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="Main-class"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="Main"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">attribute&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="Class-Path"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="${mf.classpath}&nbsp;"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">manifest</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jar</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span></div>
<img src ="http://www.blogjava.net/hwpok/aggbug/341145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">惠万鹏</a> 2010-12-20 11:41 <a href="http://www.blogjava.net/hwpok/archive/2010/12/20/341145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ANT  hello</title><link>http://www.blogjava.net/hwpok/archive/2010/12/19/341117.html</link><dc:creator>惠万鹏</dc:creator><author>惠万鹏</author><pubDate>Sun, 19 Dec 2010 13:37:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2010/12/19/341117.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/341117.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2010/12/19/341117.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/341117.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/341117.html</trackback:ping><description><![CDATA[Ant<span>是一个</span>Apache<span>基金会下的跨平台的构件工具，它可以实现项目的自动构建和部署等功能。在本文中，主要让读者熟悉怎样将</span>Ant<span>应用到</span>Java<span>项目中，让它简化构建和部署操作。</span>
<p style="margin-left: 21pt; text-indent: -21pt"><strong>一．<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span>安装与配置</span></strong></p>
<p style="text-indent: 21pt"><span>下载地址：</span><a href="http://ant.apache.org/">http://ant.apache.org/</a><span>，在本文中下载的是</span>1.7.0<span>版本。解压到某个目录（例如</span>E:"apache-ant-1.7.0<span>），即可使用。</span></p>
<p style="text-indent: 21pt"><span>添加系统环境变量：</span>ANT_HOME<span>，该变量指向</span>Ant<span>解压后的根目录，在此为</span>E:"apache-ant-1.7.0<span>。</span></p>
<p style="text-indent: 21pt"><span>安装与配置完毕后，读者可以测试一下</span>Ant<span>是否可用，首先进入</span>Ant<span>的</span>bin<span>目录，运行命令</span>ant &#8211;version<span>，若安装和配置成功，则会显示</span>Ant<span>版本信息，如下图所示：<br />
&nbsp;&nbsp;&nbsp; <img height="250" alt="" src="http://www.blogjava.net/images/blogjava_net/amigoxie/21128/r_ant_01.jpg" width="640" border="0" /><br />
</span></p>
<p style="text-indent: 21pt"><span>由上可以看出，读者运行</span>Ant<span>的命令时，需要进入到</span>Ant<span>的</span>bin<span>目录，如何才能让系统自动找到</span>Ant<span>呢？这时需要读者在系统环境变量</span>path<span>中添加</span>Ant<span>的</span>bin<span>目录。设置完成后，我们就可以在任何目录（例如</span>C:"Documents and Settings"AmigoXie<span>目录）输入</span>Ant<span>的命令，来获得命令的运行结果。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><strong>二．<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>Ant</strong><strong><span>的关键元素</span></strong></p>
<p style="text-indent: 21pt">Ant<span>的构件文件是基于</span>XML<span>编写的，默认名称为</span>build.xml<span>。为了更清楚的了解</span>Ant<span>，在这里编写一个简单的</span>Ant<span>程序，用来展现</span>Ant<span>的功能，让读者对</span>Ant<span>有一个初步的了解。首先在</span>E<span>盘下建立一个</span>build.xml<span>文件，内容如下：<br />
</span><span>读者可以进入</span><span>E</span><span>盘，然后运行</span><span>ant sayHelloWorld</span><span>，可以看到如下的运行结果：<br />
&nbsp;&nbsp;&nbsp;&nbsp;<img height="230" alt="" src="http://www.blogjava.net/images/blogjava_net/amigoxie/21128/r_ant_02.jpg" width="640" border="0" /><br />
</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="helloWorld"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="sayHelloWorld"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">echo&nbsp;</span><span style="color: #ff0000">message</span><span style="color: #0000ff">="Hello,Amigo"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span></div>
<p style="text-indent: 21pt">&nbsp;</p>
<p style="text-indent: 21pt"><span>其中</span>sayHelloWorld<span>为需要执行的任务的名称。如果文件名不为</span>build.xml<span>，而为</span>hello.xml<span>时，读者运行同样的命令时，命令窗口会出现如下错误：</span></p>
<p style="text-indent: 21pt">Buildfile: build.xml does not exist!</p>
<p style="text-indent: 21pt">Build failed</p>
<p style="text-indent: 21pt"><span>由上面的命令的错误提示可以看出，</span>ant<span>命令默认寻找</span>build.xml<span>文件。若文件名为</span>hello.xml<span>时，读者还需要对命令做少许改变，改为：</span>ant &#8211;f hello.xml sayHelloWorld<span>、</span>ant &#8211;buildfile hello.xml sayHelloWorld<span>或</span>ant &#8211;file hello.xml sayHelloWorld<span>。</span></p>
<p style="text-indent: 21pt"><span>接下来开始向读者讲解本节的重点：</span>Ant<span>的关键元素</span>project<span>、</span>target<span>、</span>property<span>和</span>task<span>。</span></p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>1.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>project</strong><strong><span>元素</span></strong></p>
<p style="text-indent: 18pt">project<span>元素是</span>Ant<span>构件文件的根元素，</span>Ant<span>构件文件至少应该包含一个</span>project<span>元素，否则会发生错误。在每个</span>project<span>元素下，可包含多个</span>target<span>元素。接下来向读者展示一下</span>project<span>元素的各属性。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt"><strong>1）</strong><strong>name</strong><strong><span>属性</span></strong></p>
<p style="margin-left: 21pt"><span>用于指定</span>project<span>元素的名称。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt"><strong>2）</strong><strong>default</strong><strong><span>属性</span></strong></p>
<p style="margin-left: 21pt"><span>用于指定</span>project<span>默认执行时所执行的</span>target<span>的名称。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt"><strong>3）</strong><strong>basedir</strong><strong><span>属性</span></strong></p>
<p style="text-indent: 21pt"><span>用于指定基路径的位置。该属性没有指定时，使用</span>Ant<span>的构件文件的附目录作为基准目录。</span></p>
<p style="text-indent: 21pt"><span>下面给读者一个简单的例子来展示</span>project<span>的各元素的使用。修改</span>E:"build.xml<span>文件，修改后的内容如下：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="projectStudy"</span><span style="color: #ff0000">&nbsp;default</span><span style="color: #0000ff">="sayBaseDir"</span><span style="color: #ff0000">&nbsp;basedir</span><span style="color: #0000ff">="E:"</span><span style="color: #ff0000">apache-ant-1.7.0"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="sayBaseDir"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">echo&nbsp;</span><span style="color: #ff0000">message</span><span style="color: #0000ff">="The&nbsp;base&nbsp;dir&nbsp;is:&nbsp;${basedir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-indent: 21pt"><span>从上面的内容我们可以看出，在这里定义了</span>default<span>属性的值为</span>sayBaseDir<span>，即当运行</span>ant<span>命令时，若未指明执行的</span>target<span>时，默认执行的</span>target<span>的</span>sayBaseDir<span>，同时还定义了</span>basedir<span>属性的值为</span>E:"apache-ant-1.7.0<span>，进入</span>E<span>盘后运行</span>ant<span>命令，可看到运行的结果，如下图所示：<br />
&nbsp;&nbsp;&nbsp; <img height="227" alt="" src="http://www.blogjava.net/images/blogjava_net/amigoxie/21128/r_ant_03.jpg" width="640" border="0" /><br />
</span></p>
<p style="text-indent: 21pt"><span>因为设定了</span>basedir<span>的值，所以</span>basedir<span>属性的值变成了读者设置的值。读者可以自行将</span>project<span>元素的</span>basedir<span>属性去掉后运行</span>ant<span>看看运行结果，此时</span>basedir<span>的值变成了</span>E:"<span>，即为</span>Ant<span>构件文件的父目录。</span></p>
<p style="text-indent: 21pt"><span>有的时候，读者可能有这种需求，即想得到某个</span>project<span>下所有的</span>target<span>的名称，读者可以通过在</span>ant<span>命令里加上</span>-proecthelp<span>来达到该目的。例如针对上述的例子我们运行</span>ant &#8211;projecthelp<span>，输出结果如下：</span></p>
<p style="text-indent: 21pt">Buildfile: build.xml</p>
<p style="text-indent: 21pt">Main targets:</p>
<p style="text-indent: 21pt">Other targets:</p>
<p style="text-indent: 21pt">&nbsp;sayBaseDir</p>
<p style="text-indent: 21pt">Default target: sayBaseDir</p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>2.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>target</strong><strong><span>元素</span></strong></p>
<p style="text-indent: 21pt"><span>它为</span>Ant<span>的基本执行单元，它可以包含一个或多个具体的任务。多个</span>target<span>可以存在相互依赖关系。它有如下属性：</span></p>
<p style="margin-left: 39pt; text-indent: -18pt"><strong>1）</strong><strong>name</strong><strong><span>属性</span></strong></p>
<p style="text-indent: 21pt"><span>指定</span>target<span>元素的名称，这个属性在一个</span>project<span>元素中是唯一的。我们可以通过指定</span>target<span>元素的名称来指定某个</span>target<span>。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt"><strong>2）</strong><strong>depends</strong><strong><span>属性</span></strong></p>
<p style="text-indent: 21pt"><span>用于描述</span>target<span>之间的依赖关系，若与多个</span>target<span>存在依赖关系时，需要以&#8220;</span>,<span>&#8221;间隔。</span>Ant<span>会依照</span>depends<span>属性中</span>target<span>出现的顺序依次执行每个</span>target<span>。被依赖的</span>target<span>会先执行。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt"><strong>3）</strong><strong>if</strong><strong><span>属性</span></strong></p>
<p style="margin-left: 21pt"><span>用于验证指定的属性是否存在，若不存在，所在</span>target<span>将不会被执行。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt"><strong>4）</strong><strong>unless</strong><strong><span>属性</span></strong></p>
<p style="text-indent: 21pt"><span>该属性的功能与</span>if<span>属性的功能正好相反，它也用于验证指定的属性是否存在，若不存在，所在</span>target<span>将会被执行。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt"><strong>5）</strong><strong>description</strong><strong><span>属性</span></strong></p>
<p style="margin-left: 21pt"><span>该属性是关于</span>target<span>功能的简短描述和说明。</span></p>
<p style="text-indent: 21pt"><span>下面带领读者来看一个各属性综合使用的例子。修改</span>E:"build.xml<span>文件，修改后的内容如下：<br />
</span><span>进入</span><span>E</span><span>盘后运行</span><span>ant targetB</span><span>，可看到如下图所示的运行结果：<br />
&nbsp;&nbsp;&nbsp; <img height="274" alt="" src="http://www.blogjava.net/images/blogjava_net/amigoxie/21128/r_ant_04.jpg" width="640" border="0" /><br />
</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="targetStudy"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="targetA"</span><span style="color: #ff0000">&nbsp;if</span><span style="color: #0000ff">="ant.java.version"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">echo&nbsp;</span><span style="color: #ff0000">message</span><span style="color: #0000ff">="Java&nbsp;Version:&nbsp;${ant.java.version}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="targetB"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="targetA"</span><span style="color: #ff0000">&nbsp;unless</span><span style="color: #0000ff">="amigo"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;depend&nbsp;example!<br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">echo&nbsp;</span><span style="color: #ff0000">message</span><span style="color: #0000ff">="The&nbsp;base&nbsp;dir&nbsp;is:&nbsp;${basedir}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span></div>
<p style="text-indent: 21pt">&nbsp;</p>
<p style="text-indent: 21pt"><span>读者分析结果后可以看到，我们运行的是名为</span>targetB<span>的</span>target<span>，因该</span>target<span>依赖于</span>targetA<span>，所以</span>targetA<span>将首先被执行，同时因为系统安装了</span>java<span>环境，所以</span>ant.java.version<span>属性存在，执行了</span>targetA<span>这个</span>target<span>，输出信息：</span>[echo] Java Version: 1.5<span>，</span>targetA<span>执行完毕后，接着执行</span>targetB<span>，因为</span>amigo<span>不存在，而</span>unless<span>属性是在不存在时进入所在的</span>target<span>的，由此可知</span>targetB<span>得以执行，输出信息：</span>The base dir is: E:"<span>。</span></p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>3.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>property</strong><strong><span>元素</span></strong></p>
<p style="text-indent: 18pt"><span>该元素可看作参量或者参数的定义，</span>project<span>的属性可以通过</span>property<span>元素来设定，也可在</span>Ant<span>之外设定。若要在外部引入某文件，例如</span>build.properties<span>文件，可以通过如下内容将其引入：</span>&lt;property file=&#8221; build.properties&#8221;/&gt;</p>
<p style="text-indent: 18pt">property<span>元素可用作</span>task<span>的属性值。在</span>task<span>中是通过将属性名放在&#8220;</span>${<span>&#8221;和&#8220;</span>}<span>&#8221;之间，并放在</span>task<span>属性值的位置来实现的。</span></p>
<p style="text-indent: 18pt">Ant<span>提供了一些内置的属性，它能得到的系统属性的列表与</span>Java<span>文档中</span>System.getPropertis()<span>方法得到的属性一致，这些系统属性可参考</span>sun<span>网站的说明。</span></p>
<p style="text-indent: 18pt"><span>同时，</span>Ant<span>还提供了一些它自己的内置属性，如下：</span></p>
<p style="text-indent: 18pt">basedir<span>：</span>project<span>基目录的绝对路径，该属性在讲解</span>project<span>元素时有详细说明，不再赘述；</span></p>
<p style="text-indent: 18pt">ant.file<span>：</span>buildfile<span>的绝对路径，如上面的各例子中，</span>ant.file<span>的值为</span>E:"build.xml<span>；</span></p>
<p style="text-indent: 18pt">ant.version<span>：</span>Ant<span>的版本，在本文中，值为</span>1.7.0<span>；</span></p>
<p style="text-indent: 18pt">ant.project.name<span>：当前指定的</span>project<span>的名字，即前文说到的</span>project<span>的</span>name<span>属性的值；</span></p>
<p style="text-indent: 18pt">ant.java.version<span>：</span>Ant<span>检测到的</span>JDK<span>的版本，在上例运行结果中可看到为</span>1.5<span>。</span></p>
<p style="text-indent: 18pt"><span>下面让读者来看一个</span>property<span>元素使用的简单例子。修改</span>E:"build.xml<span>文件，内容如下：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="propertyStudy"</span><span style="color: #ff0000">&nbsp;default</span><span style="color: #0000ff">="example"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="name"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="amigo"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="age"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="25"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="example"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">echo&nbsp;</span><span style="color: #ff0000">message</span><span style="color: #0000ff">="name:&nbsp;${name},&nbsp;age:&nbsp;${age}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-indent: 18pt"><span>该例的运行结果如下图所示：<br />
&nbsp;&nbsp;&nbsp; <img height="229" alt="" src="http://www.blogjava.net/images/blogjava_net/amigoxie/21128/r_ant_05.jpg" width="640" border="0" /><br />
</span></p>
<p style="text-indent: 18pt"><span>由此读者可以看出，通过如下两个语句：</span></p>
<p style="text-indent: 18pt">&lt;property name="name" value="amigo"/&gt;</p>
<p style="text-indent: 18pt">&lt;property name="age" value="25"/&gt;</p>
<p style="text-indent: 18pt"><span>我们设置了名为</span>name<span>和</span>age<span>的两个属性，这两个属性设置后，读者在下文中可以通过</span>${name}<span>和</span>${age}<span>分别取得这两个属性的值。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><strong>三．<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>Ant</strong><strong><span>的常用任务</span></strong></p>
<p style="text-indent: 21pt"><span>在</span>Ant<span>工具中每一个任务封装了具体要执行的功能，是</span>Ant<span>工具的基本执行单位。在本小节中，主要引导读者来看下</span>Ant<span>的常用任务及其使用举例。</span></p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>1.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>copy</strong><strong><span>任务</span></strong></p>
<p style="margin-left: 18pt"><span>该任务主要用来对文件和目录的复制功能。举例如下：</span></p>
<p style="margin-left: 18pt">Eg1.<span>复制单个文件：</span>&lt;copy file="file.txt" tofile="copy.txt"/&gt;</p>
<p style="margin-left: 18pt">Eg2.<span>对文件目录进行复制：</span></p>
<p style="margin-left: 18pt">&nbsp;&nbsp; &lt;copy todir="../newdir/dest_dir"&gt;</p>
<p style="margin-left: 18pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="src_dir"/&gt;</p>
<p style="margin-left: 18pt">&nbsp;&lt;/copy&gt;</p>
<p style="margin-left: 18pt">Eg3. <span>将文件复制到另外的目录：</span></p>
<p style="margin-left: 18pt">&nbsp;&lt;copy file="file.txt" todir="../other/dir"/&gt;</p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>2.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>delete</strong><strong><span>任务</span></strong></p>
<p style="margin-left: 18pt"><span>对文件或目录进行删除，举例如下：</span></p>
<p style="margin-left: 18pt">Eg1. <span>删除某个文件：</span>&lt;delete file="photo/amigo.jpg"/&gt;</p>
<p style="margin-left: 18pt">Eg2. <span>删除某个目录：</span>&lt;delete dir="photo"/&gt;</p>
<p style="margin-left: 18pt">Eg3. <span>删除所有的备份目录或空目录：</span></p>
<p style="margin-left: 18pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;delete includeEmptyDirs="true"&gt;</p>
<p style="margin-left: 18pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="." includes="**/*.bak"/&gt;</p>
<p style="margin-left: 18pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/delete&gt;</p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>3.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>mkdir</strong><strong><span>任务</span></strong></p>
<p style="margin-left: 18pt"><span>创建目录。</span>eg<span>：</span>&lt;mkdir dir="build"/&gt;</p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>4.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>move</strong><strong><span>任务</span></strong></p>
<p style="margin-left: 18pt"><span>移动文件或目录，举例如下：</span></p>
<p style="margin-left: 18pt">Eg1. <span>移动单个文件：</span>&lt;move file="fromfile" tofile=&#8221;tofile&#8221;/&gt;</p>
<p style="margin-left: 18pt">Eg2. <span>移动单个文件到另一个目录：</span>&lt;move file="fromfile" todir=&#8221;movedir&#8221;/&gt;</p>
<p style="margin-left: 18pt">Eg3. <span>移动某个目录到另一个目录：</span></p>
<p style="margin-left: 18pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;move todir="newdir"&gt;</p>
<p style="margin-left: 18pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="olddir"/&gt;</p>
<p style="margin-left: 18pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/move&gt;</p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>5.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong>echo</strong><strong><span>任务</span></strong></p>
<p style="text-indent: 18pt"><span>该任务的作用是根据日志或监控器的级别输出信息。它包括</span>message<span>、</span>file<span>、</span>append<span>和</span>level<span>四个属性，举例如下：</span></p>
<p style="text-indent: 18pt">&lt;echo message="Hello,Amigo" file="logs/system.log" append="true"&gt;</p>
<p style="margin-left: 21pt; text-indent: -21pt"><strong>四．<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span>利用</span>Ant</strong><strong><span>构建和部署</span>Java</strong><strong><span>工程</span></strong></p>
<p style="text-indent: 21pt">Ant<span>可以代替使用</span>javac<span>、</span>java<span>和</span>jar<span>等命令来执行</span>java<span>操作，从而达到轻松的构建和部署</span>Java<span>工程的目的。下面来看几个知识点。</span></p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>1.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span>利用</span>Ant</strong><strong><span>的</span>javac</strong><strong><span>任务来编译</span>java</strong><strong><span>程序</span></strong></p>
<p style="margin-left: 18pt">Ant<span>的</span>javac<span>任务用于实现编译</span>Java<span>程序的功能。下面来看一个简单的例子：</span></p>
<p style="text-indent: 18pt"><span>首先我们建立名为</span>antstudy<span>的</span>Java<span>工程，建立</span>src<span>目录为源代码目录，在</span>src<span>目录下建立</span>HelloWorld.java<span>这个类文件。该类文件的内容如下：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_24_119_Open_Image" alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_24_119_Closed_Image" style="display: none" alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HelloWorld&nbsp;</span><span id="Codehighlighter1_24_119_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_24_119_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_69_117_Open_Image" alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_69_117_Closed_Image" style="display: none" alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_69_117_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_69_117_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Hello,Amigo</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
<p style="text-align: left" align="left"><span>&nbsp;&nbsp; 同时在</span>antstudy<span>工程的根目录下建立</span>build.xml<span>文件，在该文件中编译</span>src<span>目录下的</span>java<span>文件，并将编译后的</span>class<span>文件放入</span>build/classes<span>目录中，在编译前，需清除</span>classes<span>目录，该文件的内容如下：<br />
</span><span>&nbsp;&nbsp;&nbsp;&nbsp;运行该</span><span>build.xml</span><span>文件，可在工程中看到新增了</span><span>build/classes</span><span>目录，并在该目录中生成了编译后的</span><span>HelloWorld.class</span><span>文件。</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="javacTest"</span><span style="color: #ff0000">default</span><span style="color: #0000ff">="compile"</span><span style="color: #ff0000">&nbsp;basedir</span><span style="color: #0000ff">="."</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="clean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">delete&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="build"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="compile"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="clean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mkdir&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">javac&nbsp;</span><span style="color: #ff0000">srcdir</span><span style="color: #0000ff">="src"</span><span style="color: #ff0000">&nbsp;destdir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-align: left" align="left">&nbsp;</p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>2.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span>使用</span>Ant</strong><strong><span>的</span>java</strong><strong><span>任务运行</span>Java</strong><strong><span>程序</span></strong></p>
<p style="text-align: left" align="left">Ant<span>中可以使用</span>java<span>任务实现运行</span>Java<span>程序的功能。下面在</span>1<span>的例子中进行如下的修改，修改后的</span>build.xml<span>文件的内容如下：<br />
</span><span>&nbsp;&nbsp;&nbsp; 运行该</span><span>build.xml</span><span>文件，可在控制台看到</span><span>HelloWorld</span><span>的</span><span>main</span><span>方法的输出。</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="javaTest"</span><span style="color: #ff0000">&nbsp;default</span><span style="color: #0000ff">="jar"</span><span style="color: #ff0000">&nbsp;basedir</span><span style="color: #0000ff">="."</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="clean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">delete&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="build"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="compile"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="clean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mkdir&nbsp;</span><span style="color: #ff0000">dir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">javac&nbsp;</span><span style="color: #ff0000">srcdir</span><span style="color: #0000ff">="src"</span><span style="color: #ff0000">&nbsp;destdir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="run"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="compile"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">java&nbsp;</span><span style="color: #ff0000">classname</span><span style="color: #0000ff">="HelloWorld"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">pathelement&nbsp;</span><span style="color: #ff0000">path</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">classpath</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">java</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span></div>
<p style="text-align: left" align="left">&nbsp;</p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>3.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span>使用</span>Ant</strong><strong><span>的</span>jar</strong><strong><span>任务生成</span>jar</strong><strong><span>文件</span></strong></p>
<p style="text-indent: 18pt"><span>读者可以在上例的基础上更进一步，来生成</span>jar<span>包，可在</span>run<span>这个</span>target<span>下再加上如下</span>target<span>：<br />
</span><span>此时将</span><span>ant</span><span>的</span><span>project</span><span>的</span><span>default</span><span>属性设置为</span><span>jar</span><span>，同时运行该</span><span>build.xml</span><span>文件，运行完毕后，可看到在工程目录下生成了一个</span><span>jar</span><span>包</span><span>HelloWorld.jar</span><span>。</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jar"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="run"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jar&nbsp;</span><span style="color: #ff0000">destfile</span><span style="color: #0000ff">="helloworld.jar"</span><span style="color: #ff0000">&nbsp;basedir</span><span style="color: #0000ff">="build/classes"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">manifest</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">attribute&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="Main-class"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="HelloWorld"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">manifest</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jar</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://pengyeer.javaeye.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-indent: 18pt">&nbsp;</p>
<p style="margin-left: 18pt; text-indent: -18pt"><strong>4.<span style="font: 7pt &apos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span>使用</span>Ant</strong><strong><span>的</span>war</strong><strong><span>任务打包</span>J2EE Web</strong><strong><span>项目</span></strong></p>
<p style="margin-left: 18pt"><span>建立一个</span>J2EE Web<span>工程，其目录结构如下图所示：<br />
<img height="287" alt="" src="http://www.blogjava.net/images/blogjava_net/amigoxie/21128/r_ant_06.jpg" width="255" border="0" /><br />
</span></p>
<p style="text-indent: 17.95pt"><span>其中</span>src<span>为源代码目录，</span>WebRoot<span>为各</span>jsp<span>存放目录，</span>lib<span>为工程的包目录。在</span>antwebproject<span>工程目录下建立了</span>build.xml<span>文件，该文件为该工程的</span>Ant<span>构件文件。读者可以</span>src<span>目录下放入在前续例子中开发的</span>HelloWorld.java<span>文件，并在</span>WebRoot<span>下建立</span>index.jsp<span>文件，其内容很简单，就是输出</span>Hello<span>信息，代码如下所示：</span><span style="font-size: 10pt; color: teal; font-family: &apos"><span style="font-size: small"><span>&nbsp;&nbsp; 接下来编写</span><span>build.xml</span></span><span><span style="font-size: small">文件，其内容如下：</span></span><span>&nbsp;&nbsp;&nbsp; 各</span><span>target</span><span>的作用在内容中已经进行说明，在此不再赘述。运行该</span><span>build</span><span>文件，更新目录后，可看到在</span><span>build</span><span>目录下生成了</span><span>antwebproject.war</span><span>文件，解开后可看到其目录结构如下：</span></p>
</span>
 <img src ="http://www.blogjava.net/hwpok/aggbug/341117.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">惠万鹏</a> 2010-12-19 21:37 <a href="http://www.blogjava.net/hwpok/archive/2010/12/19/341117.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ANT  配置方法</title><link>http://www.blogjava.net/hwpok/archive/2010/12/19/341110.html</link><dc:creator>惠万鹏</dc:creator><author>惠万鹏</author><pubDate>Sun, 19 Dec 2010 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/hwpok/archive/2010/12/19/341110.html</guid><wfw:comment>http://www.blogjava.net/hwpok/comments/341110.html</wfw:comment><comments>http://www.blogjava.net/hwpok/archive/2010/12/19/341110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hwpok/comments/commentRss/341110.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hwpok/services/trackbacks/341110.html</trackback:ping><description><![CDATA[ant的配法：&nbsp; <br />
1。解压ant的包到本地目录。&nbsp; <br />
2。在环境变量中设置ANT_HOME，值为你的安装目录。&nbsp; <br />
3。在环境变量中设置JAVA_HOME，值为你的jdk安装目录。&nbsp; <br />
4。把ANT_HOME/bin加到你系统的path目录中去。&nbsp; <br />
<br />
SET ANT_HOME=D:\jakarta-ant-1.5.1 //注意是Ant的安装目录，不是bin子目录 <br />
SET PATH=%PATH%;%ANT_HOME%\bin; <br />
<br />
 <img src ="http://www.blogjava.net/hwpok/aggbug/341110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hwpok/" target="_blank">惠万鹏</a> 2010-12-19 17:49 <a href="http://www.blogjava.net/hwpok/archive/2010/12/19/341110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>