<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>四季如風 &#187; ant</title>
	<atom:link href="http://www.hjide.com/tag/ant/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hjide.com</link>
	<description>每一天我們都在進步</description>
	<lastBuildDate>Fri, 03 Feb 2012 06:26:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ant的build.xml模版</title>
		<link>http://www.hjide.com/article/195.htm</link>
		<comments>http://www.hjide.com/article/195.htm#comments</comments>
		<pubDate>Sun, 28 Jan 2007 08:44:57 +0000</pubDate>
		<dc:creator>堕落天使</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[模版]]></category>

		<guid isPermaLink="false">http://blog.tgb.net.cn/?p=195</guid>
		<description><![CDATA[[codes=xml]&#60;project name=&#34;MyProject&#34; default=&#34;compile&#34;&#62; &#160;&#60;property file=&#34;build.properties&#34;/&#62; &#160;&#60;property name=&#34;build.debug&#34; value=&#34;on&#34;/&#62; &#160;&#60;property name=&#34;buiid.dir&#34; location=&#34;build&#34;/&#62; &#160; &#160;&#60;target name=&#34;init&#34; &#160;description=&#34;Create dir&#34;&#62; &#160; &#160; &#60;mkdir dir=&#34;build/classes&#34;/&#62; &#160; &#160; &#60;mkdir dir=&#34;dist&#34;/&#62; &#160;&#60;/target&#62; &#160; &#160;&#60;path id=&#34;comiple.classpath&#34;&#62; &#160; &#160; &#60;pathelement location=&#34;${a.jar}&#34;/&#62; &#160; &#160; &#60;pathelement location=&#34;${b.jar}&#34;/&#62; &#160;&#60;/path&#62; &#160; &#160;&#60;target name=&#34;compile&#34; depends=&#34;init&#34; description=&#34;Compile src file&#34;&#62; &#160; &#160;&#60;javac srcdir=&#34;${build.dir}&#34; destdir=&#34;build/classes&#34;&#62; &#160; &#160; &#160; &#60;classpath&#62; &#160; &#160; &#160; [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/195.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>进一步了解Ant</title>
		<link>http://www.hjide.com/article/151.htm</link>
		<comments>http://www.hjide.com/article/151.htm#comments</comments>
		<pubDate>Wed, 10 Jan 2007 07:25:48 +0000</pubDate>
		<dc:creator>堕落天使</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[ant]]></category>

		<guid isPermaLink="false">http://blog.tgb.net.cn/?p=151</guid>
		<description><![CDATA[作者： Michel Casabianca本文是一个用于构建和部署Java工程的极具价值的工具（Ant）系列文章的第二部分。 在我的第一篇文章《Ant简介》（Oracle杂志，2002年11/12月号）中，我介绍了在Java开发过程中可能要执行的一些基本任务。我使用Ant自动编译Java源代码、创建JAR文件、运行程序并生成Javadoc。在这第二篇文章中，我将要讨论Ant的两个任务包（核心任务包和可选任务包）中的一些更高级的Ant特性。核心包包括构建、打包和部署Java工程的任务，也包括执行SQL语句的任务和与并发版本控制系统（Concurrent Versions System ，CVS）相集成的任务。可选包以各种方式扩展了Ant的功能，这些方式包括：与其他源代码控制系统相集成、运行unit测试和预编译JavaServer Pages (JSP)等。我还将讨论它与Oracle9i JDeveloper 9.0.3的集成，并提供一些有用的Ant提示与技巧。 打包一个应用程序 为了分布应用程序，你可能需要生成一个文档库：tar.gz 和/或zip文件（分别用于UNIX 和Windows平台）。为了生成这两个文件，你应该编写清单1中所示的目标（target）。 在这个目标中，我使用两个专门任务来生成tar和zip文件。它们是非常类似的；它们的根元素包括一个说明要生成的的文档库名称的属性（属性tarfile和zipfile），它们都嵌套了一个专门的fileset来列举要包括在这个文档库中的文件。 这个目标看起来似乎是冗长的，但这有助于解决两个令人头疼的问题：文件许可和安装目录。当对一个文档库进行解压缩时，假定文件有合理的文件许可并将其安装到它们自己的目录中。 为了解决文件许可问题，我把要集成到该文档库中的文件按照功能分为两组：一个为不可执行的文件定义一个模式的patternset（指定的dist-non-exec），和将执行文件（外壳脚本和.bat文件）集中到bin目录中的另一个patternset（指定的dist-exec）。tarfileset&#8211;用于tar任务的专门fileset，使用mode属性管理文件许可，其值是该集合中文件的数字文件许可值。为了解决安装目录问题，我使用tarfileset 和zipfileset的prefix属性。prefix值将被附加在该文档库的文件路径之前。这样，如果我写prefix=&#34;${name}&#34;的话，该文档库的所有文件和目录将被包括在名称为该工程名的根目录下。因此，当解压缩时，生成的文档库将把这些文件安装在它们自己的目录下。用JUnit运行unit测试 buildfile是一个运行unit测试的合适地方。编写unit测试是为了尽早地发现问题，并对代码进行修改。Junit是一个用于在Java工程内开发unit测试的测试框架。包括在Ant 可选包中的junit任务使你能够从Ant buildfile执行这些测试。这样，使用junit任务，你就能够在每次创建或部署Java工程时，轻松地运行所有的unit测试。下面的例子说明了如何使用junit任务：&#60;target name=&#34;test&#34; &#160; &#160; &#160; &#160;description=&#34;Run JUnit tests&#34;&#62; &#160; &#60;junit haltonfailure=&#34;true&#34; &#160; &#160; &#160; &#160; &#160;printsummary=&#34;withOutAndErr&#34;&#62; &#160; &#160; &#60;classpath&#62; &#160; &#160; &#160; &#160;&#60;fileset dir=&#34;${lib}&#34; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; includes=&#34;**/*.jar&#34;/&#62; &#160; [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/151.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ant简介</title>
		<link>http://www.hjide.com/article/150.htm</link>
		<comments>http://www.hjide.com/article/150.htm#comments</comments>
		<pubDate>Wed, 10 Jan 2007 07:24:56 +0000</pubDate>
		<dc:creator>堕落天使</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[ant]]></category>

		<guid isPermaLink="false">http://blog.tgb.net.cn/?p=150</guid>
		<description><![CDATA[作者：Michel Casabianca 本文讲述如何使用这个具有极大价值的工具（Ant）来构建和部署Java工程。 Ant是一个用于简单或复杂Java工程的自动化构建、部署工具，它对于那些具有分布式开发团队或者相信通过频繁的构建来进行不间断集成的公司尤其有用。对于那些建立传统全Java应用程序以及那些使用HTML、JSP和Java servlets创建Web应用程序的公司来说，Ant极具价值。无论你的Java开发者使用什么操作系统、集成开发环境或者构建环境，Ant都可以将你的工程集合在一起，用于那些重要的构建。Ant也能够自动化并且同步文档部署，这通常发生在软件开发过程中的没有正式文档和文档比较混乱的部分。在构建和部署Java应用程序的时候，Ant处理着大量有用的任务。最基本的任务包括添加和移除目录、使用FTP拷贝和下载文件、创建JAR和ZIP文件以及创建文档。更高级的特性包括用源代码控制系统诸如CVS或者SourceSafe来检查源代码、执行SQL查询或脚本、将XML文件转换为人能识别的HTML，以及为远程方法调用生成stub（存根）文件。 Ant和Make（非常著名的构建工具，很多C语言开发人员都使用它）之间有什么不同？Ant是为Java而创建，带有属于其自身的、独特的范例，具有可移植性。而Make依赖于固定的操作系统命令（因此一个运行在微软Windows下的Make文件对于使用UNIX的开发者来说毫无用处），利用Ant构建的纯Java工程是可移植的，因为Ant本身就是用Java编写的，并且Ant bulidfiles使用XML语法。本文将向你展示一个典型的Ant文件，它使用了很多的Ant基本任务。一个典型的Ant工程Ant使用用XML编写的、称作bulidfile的工具来开展它的工作。让我们考虑一个源文件在src目录中、类库（包括JAR文件）在lib目录中、API文档在doc/api目录中的典型Java工程。我们可以利用如下的Ant buildfile来构建这个工程。&#60;?xml version=&#34;1.0&#34;?&#62;&#60;project name=&#34;typical&#34; default=&#34;all&#34; basedir=&#34;.&#34;&#62; &#60;property name=&#34;name&#34; value=&#34;typical&#34;/&#62; &#60;property name=&#34;src&#34; value=&#34;src&#34;/&#62; &#60;property name=&#34;lib&#34; value=&#34;lib&#34;/&#62; &#60;property name=&#34;api&#34; value=&#34;doc/api&#34;/&#62; &#60;property name=&#34;tmp&#34; value=&#34;tmp&#34;/&#62; &#60;property name=&#34;classpath&#34; value=&#34;${lib}/${name}.jar&#34;/&#62; &#60;property name=&#34;main&#34; value=&#34;test.Main&#34;/&#62; &#60;target name=&#34;bin&#34; &#160; &#160; &#160; &#160; description=&#34;Compile Java source files&#34;&#62; &#160;&#60;javac srcdir=&#34;${src}&#34; &#160; &#160; &#160; &#160; destdir=&#34;${tmp}&#34; &#160; &#160; &#160; &#160; debug=&#34;on&#34; [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/150.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

