﻿<?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-JAVA学习之路-文章分类-ant</title><link>http://www.blogjava.net/joaquin25/category/30864.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 22 Apr 2008 22:43:18 GMT</lastBuildDate><pubDate>Tue, 22 Apr 2008 22:43:18 GMT</pubDate><ttl>60</ttl><item><title>使用ant进行junit，并生成report</title><link>http://www.blogjava.net/joaquin25/articles/194801.html</link><dc:creator>joaquin25</dc:creator><author>joaquin25</author><pubDate>Tue, 22 Apr 2008 08:30:00 GMT</pubDate><guid>http://www.blogjava.net/joaquin25/articles/194801.html</guid><wfw:comment>http://www.blogjava.net/joaquin25/comments/194801.html</wfw:comment><comments>http://www.blogjava.net/joaquin25/articles/194801.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/joaquin25/comments/commentRss/194801.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/joaquin25/services/trackbacks/194801.html</trackback:ping><description><![CDATA[&nbsp;
<p style="background: white"><span style="font-size: 10pt; font-family: SimSun">一、</span><span style="font-size: 10pt; font-family: Verdana">Junit</span><span style="font-size: 10pt; font-family: SimSun">任务基本概念</span><span style="font-size: 10pt; font-family: Verdana">:</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">junit</span><span style="font-size: 10pt; font-family: SimSun">是</span><span style="font-size: 10pt; font-family: Verdana">ant</span><span style="font-size: 10pt; font-family: SimSun">的基本任务之一。这个任务运行一个或多个</span><span style="font-size: 10pt; font-family: Verdana">JUNIT</span><span style="font-size: 10pt; font-family: SimSun">测试，并收集以一种或多种格式显示结果。下面是几个</span><span style="font-size: 10pt; font-family: Verdana">junit</span><span style="font-size: 10pt; font-family: SimSun">任务的属性</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">1</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">haltonfailure,printsummary</span><span style="font-size: 10pt; font-family: SimSun">分别表示如果测试失败是否中止，是否打印基本信息。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">2</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">fommatter</span><span style="font-size: 10pt; font-family: SimSun">－－收集结果数据，一个或多个</span><span style="font-size: 10pt; font-family: Verdana">formatter</span><span style="font-size: 10pt; font-family: SimSun">可以直接在</span><span style="font-size: 10pt; font-family: Verdana">junit</span><span style="font-size: 10pt; font-family: SimSun">，</span><span style="font-size: 10pt; font-family: Verdana">test</span><span style="font-size: 10pt; font-family: SimSun">，或者</span><span style="font-size: 10pt; font-family: Verdana">batchtest</span><span style="font-size: 10pt; font-family: SimSun">下面嵌套使用。有以下三种</span><span style="font-size: 10pt; font-family: Verdana">formatter</span><span style="font-size: 10pt; font-family: SimSun">：</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;brief</span><span style="font-size: 10pt; font-family: SimSun">：以文本格式提供测试失败的详细内容。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; plain</span><span style="font-size: 10pt; font-family: SimSun">：以文本格式提供测试失败的详细内容以及每个测试的运行统计</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; xml</span><span style="font-size: 10pt; font-family: SimSun">：以</span><span style="font-size: 10pt; font-family: Verdana">xml</span><span style="font-size: 10pt; font-family: SimSun">格式提供扩展的详细内容，包括正在测试时</span><span style="font-size: 10pt; font-family: Verdana">ant</span><span style="font-size: 10pt; font-family: SimSun">的特性，系统输出，以及每个测试用例的系统错误。</span><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; &lt;formatter type="xml"/&gt;</span><span style="font-size: 10pt; font-family: SimSun">将会在</span><span style="font-size: 10pt; font-family: Verdana">data</span><span style="font-size: 10pt; font-family: SimSun">目录下为所有的测试用例都创建一个</span><span style="font-size: 10pt; font-family: Verdana">xml</span><span style="font-size: 10pt; font-family: SimSun">文件。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">3</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">test</span></p>
<p style="background: white">&nbsp;<span style="font-size: 10pt; font-family: SimSun">运行单独的测试用例</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp; &lt;test name=.../&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">4</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">batchtest</span><span style="font-size: 10pt; font-family: SimSun">，同时运行多个测试用例</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp; &lt;formatter type="xml"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp; &lt;batchtest todir=""&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; &lt;fileset dir="" include=""/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp; &lt;/batchtest&gt;</span></p>
<p style="background: white">&nbsp;<span style="font-size: 10pt; font-family: SimSun">测试的输出结果将放到</span><span style="font-size: 10pt; font-family: Verdana">todir</span><span style="font-size: 10pt; font-family: SimSun">。而</span><span style="font-size: 10pt; font-family: Verdana">dir</span><span style="font-size: 10pt; font-family: SimSun">中所有的测试用例都将运行。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp; xml formatter</span><span style="font-size: 10pt; font-family: SimSun">的默认命名规范为</span><span style="font-size: 10pt; font-family: Verdana">Test-*.xml.</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">5</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">syspropertyset</span><span style="font-size: 10pt; font-family: SimSun">，</span><span style="font-size: 10pt; font-family: SimSun">运行</span><span style="font-size: 10pt; font-family: Verdana">junit test</span><span style="font-size: 10pt; font-family: SimSun">的时候，可以指定</span><span style="font-size: 10pt; font-family: Verdana">syspropertyset</span><span style="font-size: 10pt; font-family: SimSun">，这样在</span><span style="font-size: 10pt; font-family: Verdana">Test*.java</span><span style="font-size: 10pt; font-family: SimSun">文件中可以通过</span><span style="font-size: 10pt; font-family: Verdana">System.getProperty();</span><span style="font-size: 10pt; font-family: SimSun">来获取在构建文件中定义的</span><span style="font-size: 10pt; font-family: Verdana">property</span><span style="font-size: 10pt; font-family: SimSun">的值。例子：</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; &lt;propertyset id="propertyset1"&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyref name=<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#36;&#35;&#64;&#35;&#35;"><span style="color: #333333">$#@##</span></a>/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyref prefix="#%##$"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; &lt;/propertyset&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; &lt;junit&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; ...</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;syspropertyset refid="propertyset1"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; &lt;/junit&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">6</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">sysproperty</span><span style="font-size: 10pt; font-family: SimSun">，也可以在</span><span style="font-size: 10pt; font-family: Verdana">junit</span><span style="font-size: 10pt; font-family: SimSun">中定义</span><span style="font-size: 10pt; font-family: Verdana">sysproperty</span><span style="font-size: 10pt; font-family: SimSun">，所定义的</span><span style="font-size: 10pt; font-family: Verdana">property</span><span style="font-size: 10pt; font-family: SimSun">的用法和上面的</span><span style="font-size: 10pt; font-family: Verdana">syspropertyset</span><span style="font-size: 10pt; font-family: SimSun">中的</span><span style="font-size: 10pt; font-family: Verdana">property</span><span style="font-size: 10pt; font-family: SimSun">的用法是一样的。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;sysproperty name="" value=""/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">7</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">fork="true"</span><span style="font-size: 10pt; font-family: SimSun">，让</span><span style="font-size: 10pt; font-family: Verdana">junit</span><span style="font-size: 10pt; font-family: SimSun">运行在独立的</span><span style="font-size: 10pt; font-family: Verdana">jvm</span><span style="font-size: 10pt; font-family: SimSun">中。</span>&nbsp;<span style="font-size: 10pt; font-family: SimSun">？？？</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: SimSun">二、</span><span style="font-size: 10pt; font-family: Verdana">junitreport</span><span style="font-size: 10pt; font-family: SimSun">任务</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: SimSun">可以采用</span><span style="font-size: 10pt; font-family: Verdana">junitreport</span><span style="font-size: 10pt; font-family: SimSun">任务生成</span><span style="font-size: 10pt; font-family: Verdana">html</span><span style="font-size: 10pt; font-family: SimSun">的报告。</span><span style="font-size: 10pt; font-family: Verdana">junitreport</span><span style="font-size: 10pt; font-family: SimSun">任务首先将生成的</span><span style="font-size: 10pt; font-family: Verdana">xml</span><span style="font-size: 10pt; font-family: SimSun">文件整合成一个</span><span style="font-size: 10pt; font-family: Verdana">xml</span><span style="font-size: 10pt; font-family: SimSun">文件，一般命名为</span><span style="font-size: 10pt; font-family: Verdana">TESTS-TestSuites.xml.</span><span style="font-size: 10pt; font-family: SimSun">然后再对</span><span style="font-size: 10pt; font-family: Verdana">xml</span><span style="font-size: 10pt; font-family: SimSun">文件进行转换。其格式如下：</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;junitreport&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${test.data.dir}" includes="Test-*.xml"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; &lt;report format="frames" todir=""/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;/junitreport&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;</span><span style="font-size: 10pt; font-family: SimSun">在上面这个例子里，</span><span style="font-size: 10pt; font-family: Verdana">junitreport</span><span style="font-size: 10pt; font-family: SimSun">任务将整合</span><span style="font-size: 10pt; font-family: Verdana">test.data.dir</span><span style="font-size: 10pt; font-family: SimSun">下面的</span><span style="font-size: 10pt; font-family: Verdana">Test-*.xml</span><span style="font-size: 10pt; font-family: SimSun">文件，并且生成</span><span style="font-size: 10pt; font-family: Verdana">html</span><span style="font-size: 10pt; font-family: SimSun">文件框架</span><span style="font-size: 10pt; font-family: Verdana">.</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;report</span><span style="font-size: 10pt; font-family: SimSun">表示生成有框架或无框架的</span><span style="font-size: 10pt; font-family: Verdana">javadoc</span><span style="font-size: 10pt; font-family: SimSun">。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: SimSun">三、如何只运行单个测试。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: SimSun">对</span><span style="font-size: 10pt; font-family: Verdana">test</span><span style="font-size: 10pt; font-family: SimSun">和</span><span style="font-size: 10pt; font-family: Verdana">batchtest</span><span style="font-size: 10pt; font-family: SimSun">使用</span><span style="font-size: 10pt; font-family: Verdana">if/unless</span><span style="font-size: 10pt; font-family: SimSun">来实现选择性的运行单个测试或者运行整个测试。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&lt;junit&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;test name=${testcase} if="testcase"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;batchset todir="${dest}" unless="testcase"&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset .../&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;/batchset&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; &lt;/junit&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; if</span><span style="font-size: 10pt; font-family: SimSun">表示只要</span><span style="font-size: 10pt; font-family: Verdana">testcase </span><span style="font-size: 10pt; font-family: SimSun">这个</span><span style="font-size: 10pt; font-family: Verdana">property</span><span style="font-size: 10pt; font-family: SimSun">存在则会执行</span><span style="font-size: 10pt; font-family: Verdana">test</span><span style="font-size: 10pt; font-family: SimSun">，</span><span style="font-size: 10pt; font-family: Verdana">unless</span><span style="font-size: 10pt; font-family: SimSun">表示将会执行</span><span style="font-size: 10pt; font-family: Verdana">batchset</span><span style="font-size: 10pt; font-family: SimSun">，除非</span><span style="font-size: 10pt; font-family: Verdana">testcase</span><span style="font-size: 10pt; font-family: SimSun">这个</span><span style="font-size: 10pt; font-family: Verdana">property</span><span style="font-size: 10pt; font-family: SimSun">存在。因此如果想要运行单个测试，只需要在命令行中</span><span style="font-size: 10pt; font-family: Verdana">-Dtestcase=...</span><span style="font-size: 10pt; font-family: SimSun">即可。否则将会运行所有的</span><span style="font-size: 10pt; font-family: Verdana">testcases</span><span style="font-size: 10pt; font-family: SimSun">。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: SimSun">四、</span><span style="font-size: 10pt; font-family: Verdana">ant</span><span style="font-size: 10pt; font-family: SimSun">的其他一些数据类型及属性</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;1</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">JUNIT</span><span style="font-size: 10pt; font-family: SimSun">－－－</span><span style="font-size: 10pt; font-family: Verdana">sysproperty</span><span style="font-size: 10pt; font-family: SimSun">，系统属性，定义和</span><span style="font-size: 10pt; font-family: Verdana">property</span><span style="font-size: 10pt; font-family: SimSun">类似。在</span><span style="font-size: 10pt; font-family: Verdana">java</span><span style="font-size: 10pt; font-family: SimSun">文件中可以通过</span><span style="font-size: 10pt; font-family: Verdana">System.getProperty()</span><span style="font-size: 10pt; font-family: SimSun">来获得它的值。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: SimSun">例如：</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;junit&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; ...</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;sysproperty key="docs.dir" value="./dest"&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;/junit&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: SimSun">在</span><span style="font-size: 10pt; font-family: Verdana">java</span><span style="font-size: 10pt; font-family: SimSun">文件中</span><span style="font-size: 10pt; font-family: Verdana">:</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; System.getProperty("docs.dir");</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: SimSun">也可以使用</span><span style="font-size: 10pt; font-family: Verdana">properset</span><span style="font-size: 10pt; font-family: SimSun">定义一个属性集，在</span><span style="font-size: 10pt; font-family: Verdana">junit</span><span style="font-size: 10pt; font-family: SimSun">中引用该属性集</span><span style="font-size: 10pt; font-family: Verdana">,</span><span style="font-size: 10pt; font-family: SimSun">例如：</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;property name="property1" value="value1"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;property name="property2" value="value2"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;propertyset id="myproperty"&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyref prefix="property1"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; &lt;propertyref prefix="property2"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;/propertyset&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;junit&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; ...</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; &lt;syspropertyset refid="myproperty"&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp; &lt;/junit&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp; 2</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">&lt;reference refid="srcid" torefid="tarid"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: SimSun">我的理解是定义一个引用的别名，在这里</span><span style="font-size: 10pt; font-family: Verdana">srcid</span><span style="font-size: 10pt; font-family: SimSun">是一个引用，为它定义了一个别名</span><span style="font-size: 10pt; font-family: Verdana">tarid</span><span style="font-size: 10pt; font-family: SimSun">，在当前</span><span style="font-size: 10pt; font-family: Verdana">project</span><span style="font-size: 10pt; font-family: SimSun">用</span><span style="font-size: 10pt; font-family: Verdana">srcid</span><span style="font-size: 10pt; font-family: SimSun">这个引用，如果该</span><span style="font-size: 10pt; font-family: Verdana">project</span><span style="font-size: 10pt; font-family: SimSun">中调用了另一个</span><span style="font-size: 10pt; font-family: Verdana">project</span><span style="font-size: 10pt; font-family: SimSun">的任务，则在另一个</span><span style="font-size: 10pt; font-family: Verdana">project</span><span style="font-size: 10pt; font-family: SimSun">使用</span><span style="font-size: 10pt; font-family: Verdana">tarid</span><span style="font-size: 10pt; font-family: SimSun">这个引用</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;3</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">antcall</span><span style="font-size: 10pt; font-family: SimSun">，在一个任务中调用另一个任务。例子：</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp; &lt;target name="exercises"&gt;<br />
&lt;property name="directory1" location="d1"/&gt;<br />
&lt;property name="file" location="directory1/a.txt"/&gt;<br />
&lt;echo message="directory = ${directory1}, file=${file}"/&gt;<br />
&lt;/target&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&lt;property name="replace1" value="Hello world!!!"/&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&lt;tstamp&gt;<br />
&lt;format property="currenttime" pattern="yyyy-MM-dd'T'HH:mm:ss"/&gt;<br />
&lt;/tstamp&gt;<br />
&lt;filterset id="filter.set"&gt;<br />
&nbsp;&lt;filter token="welcome" value="${replace1}" /&gt;<br />
&nbsp;&lt;filter token="time" value="${currenttime}" /&gt;<br />
&lt;/filterset&gt;<br />
&lt;target name="exercise3"&gt;<br />
&nbsp;&lt;copy todir="d2"&gt;<br />
&nbsp; &lt;fileset dir="d1"/&gt;<br />
&nbsp; &lt;filterset refid="filter.set"/&gt;<br />
&nbsp;&lt;/copy&gt;<br />
&nbsp;&lt;antcall target="exercises"/&gt;<br />
&lt;/target&gt;</span></p>
<p style="background: white">&nbsp;<span style="font-size: 10pt; font-family: SimSun">如果未定义引用</span><span style="font-size: 10pt; font-family: Verdana">property1,</span><span style="font-size: 10pt; font-family: SimSun">则在此处定义它。</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">6</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">depend</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;depend srcdir="<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; destdir="<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cache="$"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closure=""&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="**/*.java"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/depend&gt;</span></p>
<p style="background: white"><span style="font-size: 10pt; font-family: Verdana">8</span><span style="font-size: 10pt; font-family: SimSun">、</span><span style="font-size: 10pt; font-family: Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;exec dir="" executable="&#8220;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg line="-lib ${task.lib.dir} -buildfile ${task.ant.file}"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/exec&gt;<br />
<br />
<br />
<br />
试验成功的一个例子：build.xml<br />
<br />
</p>
<p>&lt;?xml version="1.0"?&gt;<br />
&lt;project name="Cobra" default="junit" basedir="."&gt;</p>
<p>&nbsp;&lt;property environment="env" /&gt;</p>
<p>&nbsp;&lt;condition property="ia.home" value="${env.IA_HOME}"&gt;<br />
&nbsp;&nbsp;&lt;isset property="env.IA_HOME" /&gt;<br />
&nbsp;&lt;/condition&gt;</p>
<p>&nbsp;&lt;property name="run.classpath" value="class"&gt;&lt;/property&gt;<br />
&nbsp;&lt;property name="run.srcpath" value="../src"&gt;&lt;/property&gt;<br />
&nbsp;&lt;property name="test.xml" value="xml"&gt;&lt;/property&gt;<br />
&nbsp;&lt;property name="test.report" value="report"&gt;&lt;/property&gt;<br />
&nbsp;&lt;property name="lib.dir" value="lib"/&gt;<br />
&nbsp;<br />
&nbsp;&lt;path id="compile.path"&gt;<br />
&nbsp;&nbsp;&lt;fileset dir="${lib.dir}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="junit.jar" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="ant.jar" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="ant-xalan1.jar" /&gt;<br />
&nbsp;&nbsp;&lt;/fileset&gt;<br />
&nbsp;&nbsp;&lt;fileset dir="${ia.home}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="IAClasses.zip" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="resource/services/services.jar" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="resource/services/ppk/*.jar" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="resource/ant/ant.jar" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="resource/log4j-1.2.15.jar" /&gt;<br />
&nbsp;&nbsp;&lt;/fileset&gt;<br />
&nbsp;&lt;/path&gt;<br />
&nbsp;<br />
&nbsp;&lt;target name="init"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&lt;delete dir="${run.classpath}"/&gt;<br />
&nbsp;&nbsp;&lt;mkdir dir="${run.classpath}"/&gt;<br />
&nbsp;&nbsp;&lt;delete dir="${test.report}"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&lt;mkdir dir="${test.report}"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&lt;delete dir="${test.xml}"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&lt;mkdir dir="${test.xml}"/&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;/target&gt;<br />
&nbsp;<br />
&nbsp;&lt;target name="compile" depends="init"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&lt;javac destdir="${run.classpath}" srcdir="${run.srcpath}" classpathref="compile.path"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;/target&gt;<br />
&nbsp;<br />
&nbsp;&lt;target name="junit" depends="compile"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&lt;junit printsummary="false"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;classpath path="${run.classpath}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;path refid="compile.path" /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/classpath&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;formatter type="xml"/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;batchtest todir="${test.xml}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset dir="${run.classpath}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/Test*.class"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="**/*Test.class"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/batchtest&gt;<br />
&nbsp;&nbsp;&lt;/junit&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&lt;junitreport todir="${test.xml}"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;fileset dir="${test.xml}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;include name="TEST-*.xml"/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;report format="frames" todir="${test.report}"/&gt;<br />
&nbsp;&nbsp;&lt;/junitreport&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;/target&gt;<br />
&lt;/project&gt;</p>
</span>
<img src ="http://www.blogjava.net/joaquin25/aggbug/194801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/joaquin25/" target="_blank">joaquin25</a> 2008-04-22 16:30 <a href="http://www.blogjava.net/joaquin25/articles/194801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ant中关于路径指定的两个小tip</title><link>http://www.blogjava.net/joaquin25/articles/194715.html</link><dc:creator>joaquin25</dc:creator><author>joaquin25</author><pubDate>Tue, 22 Apr 2008 03:08:00 GMT</pubDate><guid>http://www.blogjava.net/joaquin25/articles/194715.html</guid><wfw:comment>http://www.blogjava.net/joaquin25/comments/194715.html</wfw:comment><comments>http://www.blogjava.net/joaquin25/articles/194715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/joaquin25/comments/commentRss/194715.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/joaquin25/services/trackbacks/194715.html</trackback:ping><description><![CDATA[<p>转自：<span style="font-family: Verdana"><span style="font-size: 10pt"><a href="http://www.blogjava.net/pengpenglin/archive/2008/04/21/194509.html">http://www.blogjava.net/pengpenglin/archive/2008/04/21/194509.html<br />
</a><br />
<br />
【1】path和location属性的区别：<br />
&nbsp;<br />
&lt;classpath&gt;<br />
&nbsp;&nbsp;&nbsp; <strong><span style="color: red"><strong>&lt;pathelement path="${classpath}"/&gt;</strong></span><br />
<span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement location="lib/helper.jar"/&gt;<br />
</span></strong>&lt;/classpath&gt;<br />
&nbsp;<br />
原文：The location attribute specifies a single file or directory relative to the project's base directory&nbsp;(or an absolute filename), while the path attribute accepts colon- or semicolon-separated lists of locations. The path attribute is intended to be used with predefined paths - in any other case, multiple<br />
elements with location attributes should be preferred.<br />
&nbsp;<br />
从中我们可以看出path可以用于指向存在多个文件的位置，而location只能指向单个的文件或目录。另外path可以被设定id，供其它的path或classpath引用。如：&lt;path id="main-classpath"&gt;，而classpath则没有</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">【2】综合示例：<br />
In addition, DirSets, FileSets, and FileLists can be specified via nested &lt;dirset&gt;, &lt;fileset&gt;, and &lt;filelist&gt; elements, respectively. Note: The order in which the files building up a FileSet are added to the path-like structure is not defined.<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>pathelement path="${classpath}"/</strong>&gt;&nbsp; <strong style="color: red">方式① ：引用特定的变量</strong></span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>fileset dir="lib"</strong>&gt;&nbsp; <strong style="color: red">方式② ：指向特定的文件集</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="**/*.jar"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>pathelement location="classes"/</strong>&gt;&nbsp; <strong style="color: red">方式③：指向单个目录</strong></span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>dirset dir="${build.dir}"</strong>&gt;&nbsp; <strong style="color: red">方式④：指向特定目录集</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="apps/**/classes"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;exclude name="apps/**/*Test*"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dirset&gt;</span></span></p>
<p><span style="font-family: Verdana"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<strong>filelist refid="third-party_jars"/</strong>&gt; <strong style="color: red">方式⑤：引用指定文件列表</strong><br />
&nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br />
&nbsp;<br />
This builds a path that holds the value of ${classpath}, followed by all jar files in the lib directory, the classes directory, all directories named classes under the apps subdirectory of ${build.dir}, except those that have the text Test in their name, and the files specified in the referenced FileList.</span></span></p>
<img src ="http://www.blogjava.net/joaquin25/aggbug/194715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/joaquin25/" target="_blank">joaquin25</a> 2008-04-22 11:08 <a href="http://www.blogjava.net/joaquin25/articles/194715.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图文兼备的ant入门教程</title><link>http://www.blogjava.net/joaquin25/articles/194714.html</link><dc:creator>joaquin25</dc:creator><author>joaquin25</author><pubDate>Tue, 22 Apr 2008 03:01:00 GMT</pubDate><guid>http://www.blogjava.net/joaquin25/articles/194714.html</guid><wfw:comment>http://www.blogjava.net/joaquin25/comments/194714.html</wfw:comment><comments>http://www.blogjava.net/joaquin25/articles/194714.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/joaquin25/comments/commentRss/194714.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/joaquin25/services/trackbacks/194714.html</trackback:ping><description><![CDATA[很好的ant入门教程<br />
<br />
由于图文兼备不好转载，故提供一个链接！<br />
<a href="http://www.blogjava.net/lcs/archive/2008/04/21/194534.html">http://www.blogjava.net/lcs/archive/2008/04/21/194534.html</a>
<img src ="http://www.blogjava.net/joaquin25/aggbug/194714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/joaquin25/" target="_blank">joaquin25</a> 2008-04-22 11:01 <a href="http://www.blogjava.net/joaquin25/articles/194714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ant入门</title><link>http://www.blogjava.net/joaquin25/articles/193680.html</link><dc:creator>joaquin25</dc:creator><author>joaquin25</author><pubDate>Thu, 17 Apr 2008 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/joaquin25/articles/193680.html</guid><wfw:comment>http://www.blogjava.net/joaquin25/comments/193680.html</wfw:comment><comments>http://www.blogjava.net/joaquin25/articles/193680.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/joaquin25/comments/commentRss/193680.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/joaquin25/services/trackbacks/193680.html</trackback:ping><description><![CDATA[<p align="left"><span style="font-size: 10pt">转自：http://hi.baidu.com/beanchx/blog/item/243b38f352848251352acc24.html</span></p>
<p><span style="font-size: 10pt">1.ant的编译文件默认为build.xml，一般无需改变。<br />
2.build.xml的根节点为&lt;project&gt;，一般格式如下：<br />
&nbsp;&nbsp; &lt;project name="AntStudy" default="init" basedir="."&gt;<br />
&nbsp;&nbsp; name为工程名称；<br />
&nbsp;&nbsp; default为默认的target，就是任务；<br />
&nbsp;&nbsp; basedir就是基路径。一般为"."<br />
3.property可以定义变量，一般格式如下：<br />
&nbsp;&nbsp; &lt;property name="test" value="shit" /&gt;<br />
&nbsp;&nbsp; 引用的时候这么引用${test}<br />
&nbsp;&nbsp; 如果变量是路径的话，则可以这么定义：<br />
&nbsp;&nbsp; &lt;property name="src" value="src" /&gt;<br />
&nbsp;&nbsp; 这么定义就可以不用担心"\"和"/"的问题了。<br />
4.定义target：<br />
&nbsp;&nbsp; &lt;target name="compile" depends="init"&gt;&lt;!--other command--&gt;&lt;/target&gt;<br />
&nbsp;&nbsp; name的值为target的名称，可以在编译的时候指定是完成哪个target，<br />
&nbsp;&nbsp; 否则采用project那里定义的default。<br />
&nbsp;&nbsp; depends则定义了依赖关系，值为其他target的name。多个依赖关系用","隔开，<br />
&nbsp;&nbsp; 顺序执行完定义的依赖关系，才会执行这个target。<br />
&nbsp;&nbsp; target在build.xml中定义的顺序无所谓，但是depends中的顺序必须正确。<br />
5.编译源代码：<br />
&nbsp;&nbsp; &lt;javac srcdir="src" destdir="classes"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;classpath&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="lib"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="**/*.jar"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/classpath&gt; <br />
&nbsp;&nbsp; &lt;/javac&gt;<br />
&nbsp;&nbsp; 这个标签自动寻找src中以.java为扩展名的文件，并且调用javac命令。<br />
&nbsp;&nbsp; 这个任务有个特点，它仅仅编译那些需要编译的源文件。如果没有更新，就不需要编译，<br />
&nbsp;&nbsp; 速度就加快。<br />
&nbsp;&nbsp; 编译文件和ant使用的同一个jvm，大大减少资源浪费。<br />
&nbsp;&nbsp; 还可以指定classpath。classpath中指定文件夹，然后指定包含的文件的规则。<br />
6.创建jar文件：<br />
&nbsp;&nbsp; &lt;jar destfile="antstudy.jar" basedir="classes"&gt;<br />
&lt;manifest&gt;<br />
&nbsp;&nbsp; &lt;attribute name="Main-Class" value="bean.ant.TestAnt" /&gt;<br />
&lt;/manifest&gt;<br />
&nbsp;&nbsp; &lt;/jar&gt;<br />
&nbsp;&nbsp; manifest指定manifest中文件的属性，比如可以指定Main-Class<br />
7.创建目录：<br />
&nbsp;&nbsp; &lt;mkdir dir="classes" /&gt;<br />
&nbsp;&nbsp; 创建dir的文件夹。<br />
8.删除目录：<br />
&nbsp;&nbsp; &lt;delete dir="classes" /&gt;<br />
&nbsp;&nbsp; 删除classes文件夹<br />
9.拷贝文件：<br />
&nbsp;&nbsp;&nbsp; &lt;copy todir="${backup.dir}"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${classes.dir}"/&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;/copy&gt;<br />
&nbsp;&nbsp;&nbsp; 把fileset文件夹下面的所有文件拷贝到 backup.dir<br />
10.执行一个类：<br />
&nbsp;&nbsp;&nbsp; &lt;java dir="${build}" classname="bean.ant.TestAnt" fork="true" /&gt;<br />
&nbsp;&nbsp;&nbsp; dir为工作文件夹，classname为类名。fork要设置为true。因为你编译放class的文件夹<br />
&nbsp;&nbsp;&nbsp; 正在使用，所以要新打开一个虚拟机。<br />
11.生成javadoc：<br />
&lt;javadoc sourcepath="${src}" destdir="${docs}/javadoc" encoding="utf-8" charset="utf-8" <br />
windowtitle="Spring Framework" source="1.5" access="package" author="true" version="true" <br />
use="true" defaultexcludes="true"&gt;<br />
&lt;doctitle&gt;<br />
&nbsp;&nbsp; &lt;![CDATA[&lt;h1&gt;Ant Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;<br />
&lt;bottom&gt;<br />
&nbsp;&nbsp; &lt;![CDATA[&lt;i&gt;Copyright (c) 2002-2007&lt;/i&gt;]]&gt;&lt;/bottom&gt;<br />
&lt;packageset dir="${src}"&gt;<br />
&nbsp;&nbsp; &lt;include name="bean/ant/**" /&gt;<br />
&lt;/packageset&gt;<br />
&lt;/javadoc&gt;<br />
encoding="utf-8" charset="utf-8" 都需要，否则javadoc是乱码。<br />
packageset一定要设定，否则找不到源码，格式可以是**.意思是所有源码。<br />
12.path的使用，可以定义path对象，在其他地方可以直接复用。<br />
&lt;path id="1"&gt; <br />
&nbsp;&nbsp; &lt;pathelement location="."/&gt; <br />
&nbsp;&nbsp; &lt;pathelement location="./lib/junit.jar"/&gt; <br />
&lt;/path&gt;</span></p>
<p><span style="font-size: 10pt">&lt;path id="2"&gt; <br />
&nbsp;&nbsp; &lt;fileset dir="lib"&gt; <br />
&nbsp;&nbsp; &lt;include name="**/*.jar"/&gt; <br />
&nbsp;&nbsp; &lt;/fileset&gt; <br />
&lt;/path&gt;</span></p>
<p><span style="font-size: 10pt">&lt;javac srcdir="./src" destdir="./classes"&gt; <br />
&nbsp;&nbsp; &lt;classpath refid="1"/&gt; <br />
&lt;/javac&gt;</span></p>
<p><span style="font-size: 10pt">&lt;javac srcdir="./src" destdir="./classes"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;classpath refid="1"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement location="."/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement location="./lib/junit.jar"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/classpath&gt; <br />
&lt;/javac&gt;<br />
13.单元测试：<br />
&lt;junit printsummary="yes"&gt;<br />
&nbsp;&nbsp; &lt;classpath refid="testpath" /&gt;<br />
&nbsp;&nbsp; &lt;batchtest&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;fileset dir="${test}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="**/*Test.java" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />
&nbsp;&nbsp; &lt;/batchtest&gt;<br />
&lt;/junit&gt;<br />
&nbsp;&nbsp;&nbsp; batchtest为批量test，需要设置符合条件的类名称。<br />
&nbsp;&nbsp;&nbsp; 在进行单元测试之前必须先进行编译。<br />
&nbsp;&nbsp;&nbsp; 配置的classpath指向一个testpath的path，就是上面哪一条里面讲的。<br />
&nbsp;&nbsp;&nbsp; 一开始会报一个找不到junit的错误，可以用下面方法解决：<br />
&nbsp;&nbsp;&nbsp; Windows&gt;&gt;Preference&gt;&gt;Ant&gt;&gt;Runtime&gt;&gt;Classpath<br />
&nbsp;&nbsp;&nbsp; 添加一个junit.jar 在 [eclipse home]\plugins\org.junit_3.8.1可以找到。</span></p>
<img src ="http://www.blogjava.net/joaquin25/aggbug/193680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/joaquin25/" target="_blank">joaquin25</a> 2008-04-17 11:13 <a href="http://www.blogjava.net/joaquin25/articles/193680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>