﻿<?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-XZC.Log-随笔分类-Maven</title><link>http://www.blogjava.net/xzclog/category/32016.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 08 Jul 2011 03:55:08 GMT</lastBuildDate><pubDate>Fri, 08 Jul 2011 03:55:08 GMT</pubDate><ttl>60</ttl><item><title>maven2 学习 - maven 命令</title><link>http://www.blogjava.net/xzclog/archive/2011/07/08/353930.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Fri, 08 Jul 2011 03:20:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2011/07/08/353930.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/353930.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2011/07/08/353930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/353930.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/353930.html</trackback:ping><description><![CDATA[<div style="text-align: left">常用命令</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; Maven2 的运行命令为 ： mvn ，</div>
<div style="text-align: left">常用命令为 ：</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn archetype:create ：创建 Maven 项目</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn compile ：编译源代码</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn test-compile ：编译测试代码</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn test ： 运行应用程序中的单元测试</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn site ： 生成项目相关信息的网站</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn clean ：清除目标目录中的生成结果</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn package ： 依据项目生成 jar 文件</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn install ：在本地 Repository 中安装 jar</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mvn eclipse:eclipse ：生成 Eclipse 项目文件</div>
<div style="text-align: left">生成项目</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 建一个 JAVA 项目 ： mvn archetype:create -DgroupId=com.demo -DartifactId=App</div>
<div style="text-align: left">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;建一个 web 项目 ： mvn archetype:create -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp</div>
<div style="text-align: left"><br /></div>
<div style="text-align: left">简单解释一下：</div>
<div style="text-align: left">archetype &nbsp;是一个内建插件，他的create任务将建立项目骨架</div>
<div style="text-align: left">archetypeArtifactId &nbsp; 项目骨架的类型</div>
<div style="text-align: left">DartifactId 项目名称</div>
<div style="text-align: left"><br /></div>
<div style="text-align: left">可用项目骨架有：</div>
<div style="text-align: left">* maven-archetype-archetype</div>
<div style="text-align: left">* maven-archetype-j2ee-simple</div>
<div style="text-align: left">* maven-archetype-mojo</div>
<div style="text-align: left">* maven-archetype-portlet</div>
<div style="text-align: left">* maven-archetype-profiles (currently under development)</div>
<div style="text-align: left">* maven-archetype-quickstart</div>
<div style="text-align: left">* maven-archetype-simple (currently under development)</div>
<div style="text-align: left">* maven-archetype-site</div>
<div style="text-align: left">* maven-archetype-site-simple, and</div>
<div style="text-align: left">* maven-archetype-webapp</div>
<div style="text-align: left"><br /></div>
<div style="text-align: left">附maven2 生成项目标准目录布局</div>
<div style="text-align: left">
<div style="text-align: left">src/main/java<span style="white-space: pre"> </span>Application/Library sources</div>
<div style="text-align: left">src/main/resources<span style="white-space: pre"> </span>Application/Library resources</div>
<div style="text-align: left">src/main/filters<span style="white-space: pre"> </span>Resource filter files</div>
<div style="text-align: left">src/main/assembly<span style="white-space: pre"> </span>Assembly descriptors</div>
<div style="text-align: left">src/main/config<span style="white-space: pre"> </span>Configuration files</div>
<div style="text-align: left">src/main/webapp<span style="white-space: pre"> </span>Web application sources</div>
<div style="text-align: left">src/test/java<span style="white-space: pre"> </span>Test sources</div>
<div style="text-align: left">src/test/resources<span style="white-space: pre"> </span>Test resources</div>
<div style="text-align: left">src/test/filters<span style="white-space: pre"> </span>Test resource filter files</div>
<div style="text-align: left">src/site<span style="white-space: pre"> </span>Site</div>
<div style="text-align: left">LICENSE.txt<span style="white-space: pre"> </span>Project's license</div>
<div style="text-align: left">README.txt<span style="white-space: pre"> </span>Project's readme</div></div><img src ="http://www.blogjava.net/xzclog/aggbug/353930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2011-07-08 11:20 <a href="http://www.blogjava.net/xzclog/archive/2011/07/08/353930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>创建简单的maven archetype </title><link>http://www.blogjava.net/xzclog/archive/2011/07/08/353917.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Fri, 08 Jul 2011 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2011/07/08/353917.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/353917.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2011/07/08/353917.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/353917.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/353917.html</trackback:ping><description><![CDATA[<p align="left">&nbsp;</p>
<div class="blog_title">
<div class="date"><span class="year">2011</span><span class="sep_year">-</span><span class="month">07</span><span class="sep_month">-</span><span class="day">05</span></div>
<ul class="blog_categories"><strong>博客分类：</strong><li><a href="http://xiaoboss.iteye.com/category/163185"><font color="#108ac6">maven</font></a> </li></ul>
<div class="news_tag"><a href="http://www.iteye.com/blogs/tag/Java">Java</a><a href="http://www.iteye.com/blogs/tag/SQL">SQL</a><a href="http://www.iteye.com/blogs/tag/XML">XML</a><a href="http://www.iteye.com/blogs/tag/%E7%BC%96%E7%A8%8B">编程</a></div></div>
<div class="blog_content" id="blog_content">
<p>如果你想定义一个maven工程模板，有一种很快的方法：<br />1.定义你开发环境的目录结构，写一个pom.xml.<br />2.使用命令，mvn archetype:create-from-project 创建一个工程模板。<br />3.在target目录下执行mvn install.执行完之后你就可以使用你的模板了。<br />4.执行命令，mvn archetype:generate -DarchetypeCatalog=local就可以开始使用你定义的模板创建工程。<br /><br />例子：<br />1.创建目录结构如下：<br />Demo<br />--src<br />--main<br />--resources<br />--test<br />--webapp<br />pom.xml<br /><br />pom.xml内容： &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;<br />&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;<br />&lt;groupId&gt;gDemo&lt;/groupId&gt;<br />&lt;artifactId&gt;demo&lt;/artifactId&gt;<br />&lt;packaging&gt;jar&lt;/packaging&gt;<br />&lt;version&gt;1.0&lt;/version&gt;<br />&lt;name&gt;Maven Quick Start Archetype&lt;/name&gt;<br />&lt;url&gt;http://maven.apache.org&lt;/url&gt;<br />&lt;dependencies&gt;<br />&lt;dependency&gt;<br />&lt;groupId&gt;junit&lt;/groupId&gt;<br />&lt;artifactId&gt;junit&lt;/artifactId&gt;<br />&lt;version&gt;3.8.1&lt;/version&gt;<br />&lt;scope&gt;test&lt;/scope&gt;<br />&lt;/dependency&gt;<br />&lt;/dependencies&gt;<br />&lt;/project&gt;<br /><br />2.在Demo目录下执行命令,mvn archetype:create-from-project<br /><br />3.在创建的target\generated-sources\archetype目录下执行,mvn install.<br />到此你的工程模板创建完成。在以后开发中就可以使用它。<br /><br />4.执行mvn archetype:generate -DarchetypeCatalog=local会看到模板选项，选择刚才创建的模板，然后进行下面的设置。<br />到此恭喜你，成功使用。</p></div>
<p align="left"><script type="text/javascript"><!--
google_ad_client = "pub-1076724771190722";
/* JE个人博客468x60 */
google_ad_slot = "5506163105";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script><script src="http://pagead2.googlesyndication.com/pagead/js/r20110622/r20110627/show_ads_impl.js"></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script><script src="http://pagead2.googlesyndication.com/pagead/render_ads.js"></script><script>google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);</script></p><img src ="http://www.blogjava.net/xzclog/aggbug/353917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2011-07-08 10:13 <a href="http://www.blogjava.net/xzclog/archive/2011/07/08/353917.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Maven入门--概念与实例 </title><link>http://www.blogjava.net/xzclog/archive/2006/10/29/77910.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Sun, 29 Oct 2006 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2006/10/29/77910.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/77910.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2006/10/29/77910.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/77910.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/77910.html</trackback:ping><description><![CDATA[		<font size="2">最近由于工作原因在研究、应用Maven，有了一些体会就写成了此文。本文虽然是Maven2的入门文章，但并不涉及Maven的历史、下载与安装，这些内容可以到Maven的官方网站上了解。本文主要是关注Maven中的重要概念，并以一个实例来阐述使用Maven的基本方法。<b>文末有例子代码下载的链接</b>。(2006.10.29最后更新)</font>
		<br />
		<b>1 关键名词</b>
		<br />
		<font size="2">&#160;&#160;&#160; <b>Project</b>：任何您想build的事物，Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM，Poject Object Model)。一个工程可以依赖其它的工程；一个工程也可以由多个子工程构成。<br />&#160;&#160;&#160; <b>POM</b>：POM(pom.xml)是Maven的核心文件，它是指示Maven如何工作的元数据文件，类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。<br />&#160;&#160;&#160; <b>GroupId</b>：groupId是一个工程的在全局中唯一的标识符，一般地，它就是工程名。groupId有利于使用一个完全的包名，将一个工程从其它有类似名称的工程里区别出来。<br />&#160;&#160;&#160; <b>Artifact</b>：artifact是工程将要产生或需要使用的文件，它可以是jar文件，源文件，二进制文件，war文件，甚至是pom文件。每个artifact都由groupId和artifactId组合的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中，否则Maven无法找到(识别)它们。<br />&#160;&#160;&#160; <b>Dependency</b>：为了能够build或运行，一个典型的Java工程会依赖其它的包。在Maven中，这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。<br />&#160;&#160;&#160; <b>Plug-in</b>：Maven是由插件组织的，它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target)，并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的，但它也支持用Beanshell或Ant脚本写成的插件。<br />&#160;&#160;&#160; <b>Repository</b>：仓库用于存放artifact，它可以是本地仓库，也可以是远程仓库。Maven有一个默认的远程仓库--central，可以从<font color="#0000ff">http://www.ibiblio.org/maven2/</font>下载其中的artifact。在Windows平台上，本地仓库的默认地址是<font color="#0000ff"><i>User_Home</i>\.m2\repository</font>。<br />&#160;&#160;&#160; <b>Snapshot</b>：工程中可以(也应该)有一个特殊版本，它的版本号包括<i>SNAPSHOT</i>字样。该版本可以告诉Maven，该工程正处于开发阶段，会经常更新(但还未发布)。当其它工程使用此类型版本的artifact时，Maven会在仓库中寻找该artifact的最新版本，并自动下载、使用该最新版。<br /></font>
		<b>
				<font size="3">2 Maven Build Life Cycle</font>
		</b>
		<br />
		<font size="2">&#160;&#160;&#160; 软件项目一般都有相似的开发过程：准备，编译，测试，打包和部署，Maven将上述过程称为Build Life Cycle。在Maven中，这些生命周期由一系列的短语组成，每个短语对应着一个(或多个)操作；或对应着一个(或多个)goal(类似于Ant中的target)。<br />&#160;&#160;&#160; 如编译源文件的命令<font color="#0000ff">mvn compile</font>中的compile是一个生命周期短语。同时该命令也可以等价于<font color="#0000ff">mvn compiler:compile</font>，其中的compiler是一个插件，它提供了compile(<b>此compile与mvn compile中的compile意义不同</b>)goal；compiler还可提供另一个goal--testCompile，该goal用于编译junit测试类。<br />&#160;&#160;&#160; 在执行某一个生命周期时，Maven会首先执行该生命周期之前的其它周期。如要执行compile，那么将首先执行validate，generate-source，process-source和generate-resources，最后再执行compile本身。<i>关于Maven中默认的生命周期短语，请见参考资源[6]中的附录B.3</i>。<br /></font>
		<b>
				<font size="3">3 标准目录布局</font>
		</b>
		<br />
		<font size="2">&#160;&#160;&#160; Maven为工程中的源文件，资源文件，配置文件，生成的输出和文档都制定了一个标准的目录结构。Maven鼓励使用标准目录布局，这样就不需要进行额外的配置，而且有助于各个不同工程之间的联接。当然，Maven也允许定制个性的目录布局，这就需要进行更多的配置。<i>关于Maven的标准目录布局，请见参考资源[6]中的附录B.1</i>。<br /></font>
		<b>
				<font size="3">4 Maven的优点</font>
		</b>
		<br />
		<font size="2">&#160;&#160;&#160; [1]build逻辑可以被重用。在Ant中可能需要多次重复地写相同的语句，但由于POM的继承性，可以复用其它的POM文件中的语句。这样既可以写出清晰的build语句，又可以构造出层次关系良好的build工程。<br />&#160;&#160;&#160; [2]不必关注build工作的实现细节。我们只需要使用一些build生命周期短语就可以达到我们的目标，而不必管Maven是如何做到这些的。如，只需要告诉Maven要安装(install)，那么它自然就会验证，编译，打包，及安装。<br />&#160;&#160;&#160; [3]Maven会递归加载工程依赖的artifact所依赖的其它artifact，而不用显示的将这些artifact全部写到dependency中。<br />&#160;&#160;&#160; [4]如果完全使用Maven的标准目录布局，那么可以极大地减少配置细节。<br /></font>
		<b>
				<font size="3">5 实例</font>
		</b>
		<br />
		<font size="2">
				<b>5.1 构想</b>
				<br />&#160;&#160;&#160; 由于只是阐述Maven的基本使用方法，所以本文将要设计的实例，只是一个简单的Maven demo。该实例包含两个工程：普通应用程序工程(app)和Web应用工程(webapp)。app工程提供一个简单的Java类；webapp工程只包含一个Servlet，并将使用app中的Java类。<br />&#160;&#160;&#160; 该Demo的目标是能够正确地将webapp制成war包，以供部署时使用。要能够正确制作war，自然首先就必须要能够正确的编译源代码，且要将App模块制成jar包。本文创建的工程所在的目录是<font color="#0000ff">D:\maven\demo</font>。<br /><b>5.2 App工程</b><br />&#160;&#160;&#160; 可以使用Maven的archetype插件来创建新工程，命令如下：<br />&#160;&#160;&#160; <font color="#0000ff">D:\maven\demo&gt;mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=app</font><br />该工程的groupId是ce.demo.mvn，那么该工程的源文件将放在Java包ce.demo.mvn中。artifactId是app，那么该工程根目录的名称将为app。<br />&#160;&#160;&#160; 当第一次执行该命令时，Maven会从central仓库中下载一些文件。这些文件包含插件archetype，以及它所依赖的其它包。该命令执行完毕后，在目录D:\maven\demo下会出现如下目录布局：<br /></font>
		<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)">
				<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
				<span style="COLOR: rgb(0,0,0)">app<br />|--&#160;pom.xml<br />`--&#160;src<br />&#160;&#160;&#160;&#160;|--&#160;main<br />&#160;&#160;&#160;&#160;|&#160;&#160;&#160;`--&#160;java<br />&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;ce<br />&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;demo<br />&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;mvn<br />&#160;&#160;&#160;&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;App.java<br />&#160;&#160;&#160;&#160;`--&#160;test<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;java<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;ce<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;demo<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;mvn<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;AppTest.java</span>
		</div>因本文暂时不涉及JUnit测试，故请将目录<font color="#0000ff">app\src\test</font>目录删除(不删除也没关系 ^_^)。然后再修改App.java文件，其完全内容如下：<br /><font color="#008000"><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: rgb(0,0,255)">package</span><span style="COLOR: rgb(0,0,0)">&#160;ce.demo.mvn;<br /><img id="Codehighlighter1_38_105_Open_Image" onclick="this.style.display='none'; Codehighlighter1_38_105_Open_Text.style.display='none'; Codehighlighter1_38_105_Closed_Image.style.display='inline'; Codehighlighter1_38_105_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_38_105_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_38_105_Closed_Text.style.display='none'; Codehighlighter1_38_105_Open_Image.style.display='inline'; Codehighlighter1_38_105_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,255)">class</span><span style="COLOR: rgb(0,0,0)">&#160;App&#160;</span><span id="Codehighlighter1_38_105_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_38_105_Open_Text"><span style="COLOR: rgb(0,0,0)">{<br /><img id="Codehighlighter1_77_103_Open_Image" onclick="this.style.display='none'; Codehighlighter1_77_103_Open_Text.style.display='none'; Codehighlighter1_77_103_Closed_Image.style.display='inline'; Codehighlighter1_77_103_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_77_103_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_77_103_Closed_Text.style.display='none'; Codehighlighter1_77_103_Open_Image.style.display='inline'; Codehighlighter1_77_103_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)">&#160;String&#160;getStr(String&#160;str)&#160;</span><span id="Codehighlighter1_77_103_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_77_103_Open_Text"><span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">return</span><span style="COLOR: rgb(0,0,0)">&#160;str;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div></font><font color="#4b4b4b">其实，如果我们能够清楚地知道Maven的标准目录布局，就可以不使用archetype插件来创建工程原型；如果我们要定制个性的目录布局，那么就更没有必要使用archetype插件了。<br /><b>5.3 WebApp工程</b><br />&#160;&#160;&#160; 我们仍然如创建app工程一样使用archetype插件来创建webapp工程，命令如下：<br />&#160;&#160;&#160; </font><font color="#0000ff">D:\maven\demo&gt;mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=webapp -DarchetypeArtifactId=maven-archetype-webapp</font><br /><font color="#4b4b4b">&#160;&#160;&#160; 第一次运行此命令时，也会从central仓库中下载一些与Web应用相关的artifact(如javax.servlet)。此命令与创建app的命令的不同之处是，多设置了一个属性archetypeArtifacttId，该属性的值为maven-archetype-webapp。即告诉Maven，将要创建的工程是一个Web应用工程。创建app工程时没有使用该属性值，是由于archetype默认创建的是应用程序工程。同样的，执行完该命令之后，会出现如下标准目录布局：<br /></font><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">webapp<br />|--&#160;pom.xml<br />`--&#160;src<br />&#160;&#160;&#160;&#160;`--&#160;main<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`--&#160;webapp<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><font size="+0"><font size="2"><span style="COLOR: rgb(0,0,0)">|</span></font></font><span style="COLOR: rgb(0,0,0)">--&#160;index.jsp<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |--&#160;WEB-INF<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160; `--&#160;web.xml</span></div>&#160;&#160;&#160; 根据5.1节的构想，webapp工程将只包含一个Servlet，所以我们不需要index.jsp文件，请将其删除。此时大家可以发现，目前的目录布局中并没有放Servlet，即Java源文件的地方。根据参考资源[6]中的附录B.1，以及app工程中Java源文件的布局，可以知道Servlet（它仍然是一个Java类文件）仍然是放在<font color="#0000ff">webapp\src\main\java</font>目录中，请新建该目录。此处的Servlet是一个简单HelloServlet，其完整代码如下：<br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><font color="#008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></font><span style="COLOR: rgb(0,0,255)">package</span><span style="COLOR: rgb(0,0,0)">&#160;hello;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">import</span><span style="COLOR: rgb(0,0,0)">&#160;java.io.IOException;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">import</span><span style="COLOR: rgb(0,0,0)">&#160;java.io.PrintWriter;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">import</span><span style="COLOR: rgb(0,0,0)">&#160;javax.servlet.ServletException;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">import</span><span style="COLOR: rgb(0,0,0)">&#160;javax.servlet.http.HttpServlet;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">import</span><span style="COLOR: rgb(0,0,0)">&#160;javax.servlet.http.HttpServletRequest;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">import</span><span style="COLOR: rgb(0,0,0)">&#160;javax.servlet.http.HttpServletResponse;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">import</span><span style="COLOR: rgb(0,0,0)">&#160;ce.demo.mvn.App;&#160;&#160;</span><span style="COLOR: rgb(0,128,0)">//</span><span style="COLOR: rgb(0,128,0)">&#160;引用app工程中的App类</span><span style="COLOR: rgb(0,128,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,0)"><br /><img id="Codehighlighter1_333_776_Open_Image" onclick="this.style.display='none'; Codehighlighter1_333_776_Open_Text.style.display='none'; Codehighlighter1_333_776_Closed_Image.style.display='inline'; Codehighlighter1_333_776_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_333_776_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_333_776_Closed_Text.style.display='none'; Codehighlighter1_333_776_Open_Image.style.display='inline'; Codehighlighter1_333_776_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,255)">class</span><span style="COLOR: rgb(0,0,0)">&#160;HelloServlet&#160;</span><span style="COLOR: rgb(0,0,255)">extends</span><span style="COLOR: rgb(0,0,0)">&#160;HttpServlet&#160;</span><span id="Codehighlighter1_333_776_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_333_776_Open_Text"><span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">private</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,255)">static</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,255)">final</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,255)">long</span><span style="COLOR: rgb(0,0,0)">&#160;serialVersionUID&#160;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">3696470690560528247L</span><span style="COLOR: rgb(0,0,0)">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">public</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,255)">void</span><span style="COLOR: rgb(0,0,0)">&#160;doGet(HttpServletRequest&#160;request,&#160;HttpServletResponse&#160;response)<br /><img id="Codehighlighter1_536_774_Open_Image" onclick="this.style.display='none'; Codehighlighter1_536_774_Open_Text.style.display='none'; Codehighlighter1_536_774_Closed_Image.style.display='inline'; Codehighlighter1_536_774_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_536_774_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_536_774_Closed_Text.style.display='none'; Codehighlighter1_536_774_Open_Image.style.display='inline'; Codehighlighter1_536_774_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">throws</span><span style="COLOR: rgb(0,0,0)">&#160;ServletException,&#160;IOException&#160;</span><span id="Codehighlighter1_536_774_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_536_774_Open_Text"><span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;App&#160;app&#160;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,255)">new</span><span style="COLOR: rgb(0,0,0)">&#160;App();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;String&#160;str&#160;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&#160;app.getStr(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">CE&#160;Maven&#160;Demo</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;PrintWriter&#160;out&#160;</span><span style="COLOR: rgb(0,0,0)">=</span><span style="COLOR: rgb(0,0,0)">&#160;response.getWriter();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;out.print(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&lt;html&gt;&lt;body&gt;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;out.print(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&lt;h1&gt;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&#160;</span><span style="COLOR: rgb(0,0,0)">+</span><span style="COLOR: rgb(0,0,0)">&#160;str);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;out.print(</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&lt;/body&gt;&lt;/html&gt;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&#160;&#160;&#160;&#160;}</span></span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><b>5.4 POM文件</b><br />&#160;&#160;&#160; 大家可以发现，在前面新建工程时，我们并没有提到各个工程中的pom.xml文件。现在将要讨论这个问题。我们先看看app工程中的POM文件，其完整内容如下：<br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">project</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">modelVersion</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">4.0.0</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">modelVersion</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">ce.demo.mvn</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">app</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">packaging</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">jar</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">packaging</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">1.0</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">name</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">CE&#160;Maven&#160;Demo&#160;--&#160;App</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">name</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">project</span><span style="COLOR: rgb(0,0,255)">&gt;</span></div>&#160;&#160;&#160; 大家可以发现此我帖出来的内容与实际由archetype插件生成的POM文件的内容有些不同，但基本上是一致的。只是为了使文件中的语句更清晰，此处删除了一些冗余的内容，并修改了该工程的version和name的值，以与此例子的背景来符合。在目前情况下modelVersion值将被固定为4.0.0，这也是Maven2唯一能够识别的model版本。groupId，artifactId的值与创建工程时使用的命令中的相关属性值是一致的。packaging的值由工程的类型决定，如应用程序工程的packaging值为jar，Web应用工程的packaging值为war。上述情况也可以从webapp的POM文件中看出，下面将看看这个pom的完整内容。<br /><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">project</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">modelVersion</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">4.0.0</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">modelVersion</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">ce.demo.mvn</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">webapp</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">packaging</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">war</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">packaging</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">1.0</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">name</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">CE&#160;Maven&#160;Demo&#160;--&#160;WebApp</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">name</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">dependencies</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">dependency</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">ce.demo.mvn</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">app</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">1.0</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">dependency</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">dependency</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">javax.servlet</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">servlet-api</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">2.4</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">scope</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">provided</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">scope</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">dependency</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">&#160;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">dependencies</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">project</span><span style="COLOR: rgb(0,0,255)">&gt;</span></div>&#160;&#160;&#160; 比较app与webapp中的POM，除前面已经提过的packaging的差别外，我们还可以发现webapp中的POM多了dependencies项。由于webapp需要用到app工程中的类(见HelloServlet源代码)，它还需要javax.servlet包(因为该包并不默认存在于jsdk中)。故，我们必须要将它们声明到依赖关系中。<br /><b>5.5 执行</b><br />&#160;&#160;&#160; 上述两个工程创建完毕后，就需要执行一些命令来看看会有什么结果出现。我们首先进入app目录，并执行命令<font color="#0000ff">mvn compile</font>，然后会在该目录下发现新生成的目录target\classes，即编译后的class文件(包括它的包目录)就放在了这里。再执行命令mvn package，在目录target中就会生成app-1.0.jar文件。该文件的全名由如下形式确定：<b>artifactId-version.packaging</b>。根据第2章的叙述可以知道，执行命令<font color="#0000ff">mvn package</font>时，将首先将产生执行命令<font color="#0000ff">mvn compile</font>之后的结果，故如果要打包，那么只需要执行<font color="#0000ff">mvn package</font>即可。<br />&#160;&#160;&#160; 在app工程中执行完之后，就需要进入webapp工程了。进入webapp目录，此次将只执行<font color="#0000ff">mvn package</font>命令(隐示地执行了compile过程)。此次命令的执行并不成功，会出现如下问题：<br /><font color="#0000ff"><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">D:\maven\demo\webapp&gt;mvn&#160;package<br />&#8230;&#8230;<br /><b>Downloading:&#160;http://repo1.maven.org/maven2/ce/demo/mvn/app/</b></span><b><span style="COLOR: rgb(0,0,0)">1.0</span><span style="COLOR: rgb(0,0,0)">/app-</span><span style="COLOR: rgb(0,0,0)">1.0</span></b><span style="COLOR: rgb(0,0,0)"><b>.pom</b><br /></span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">[</span><span style="COLOR: rgb(128,0,0)">INFO</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">]</span><span style="COLOR: rgb(0,0,0)">&#160;------------------------------------------------------------------------<br /></span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">[</span><span style="COLOR: rgb(128,0,0)">ERROR</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">]</span><span style="COLOR: rgb(0,0,0)">&#160;BUILD&#160;ERROR<br /></span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">[</span><span style="COLOR: rgb(128,0,0)">INFO</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">]</span><span style="COLOR: rgb(0,0,0)">&#160;------------------------------------------------------------------------<br /></span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">[</span><span style="COLOR: rgb(128,0,0)">INFO</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">]</span><span style="COLOR: rgb(0,0,0)">&#160;Error&#160;building&#160;POM&#160;(may&#160;not&#160;be&#160;this&#160;project's&#160;POM).<br />Project&#160;ID:&#160;ce.demo.mvn:app<br />Reason:&#160;Error&#160;getting&#160;POM&#160;for&#160;'ce.demo.mvn:app'&#160;from&#160;the&#160;repository:&#160;Error&#160;transferring&#160;file<br />&#160;&#160;ce.demo.mvn:app:pom:</span><span style="COLOR: rgb(0,0,0)">1.0</span><span style="COLOR: rgb(0,0,0)"><br />from&#160;the&#160;specified&#160;remote&#160;repositories:<br />&#160;&#160;central&#160;(http://repo1.maven.org/maven2)<br />&#8230;&#8230;</span></div></font><font color="#4b4b4b">&#160;&#160;&#160; 由粗体内容可知，Maven正试图从central仓库下载app工程的artifact，但central仓库肯定不会有这个artifact，其结果只能是执行失败!由第1章artifact名词的解释可知，被依赖的artifact必须存在于仓库(远程或本地)中，但目前webapp所依赖的app必不存在于仓库中，所以执行只能失败。<br />&#160;&#160;&#160; 解决这个问题有两种方法：[1]将app-1.0.jar安装到仓库中，使它成为一个artifact；[2]构建一个更高层次的工程，使app和webapp成为这个工程的子工程，然后从这个更高层次工程中执行命令。<br />&#160;&#160;&#160; 第一种方法比较简单（</font><font color="#000000"><font color="#0000ff">见</font>http://www.blogjava.net/jiangshachina/admin/EditPosts.aspx<font color="#000000">中的第一个主题</font></font><font color="#4b4b4b">），此处将详细讨论第2种方法(见5.6节)。<br /><b>5.6 更高层次工程</b><br />&#160;&#160;&#160; 我们可以将app和webapp的上一级目录demo作为这两个工程的<font size="2"> 一个 </font></font><font size="2"><font color="#4b4b4b">更高层次工程，即使用app和webapp成为这个工程的子工程。为了使demo目录成为一个demo工程，只需要在这个目录下添加一个pom.xml文件，该文件内容如下：<br /></font><div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><font color="#4b4b4b"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></font><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">project</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">modelVersion</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">4.0.0</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">modelVersion</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">ce.demo</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">groupId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">mvn-demo</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">artifactId</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">packaging</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">pom</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">packaging</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">1.0</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">version</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">name</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">CE&#160;Maven&#160;Demo</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">name</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">modules</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">module</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">app</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">module</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;</span><span style="COLOR: rgb(128,0,0)">module</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)">webapp</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">module</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&#160;&#160;&#160;&#160;</span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">modules</span><span style="COLOR: rgb(0,0,255)">&gt;</span><span style="COLOR: rgb(0,0,0)"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: rgb(0,0,255)">&lt;/</span><span style="COLOR: rgb(128,0,0)">project</span><span style="COLOR: rgb(0,0,255)">&gt;</span></div>&#160;&#160;&#160; 与app和webapp中的POM相比，demo的POM使用了modules项，modules用于声明本工程的子工程，module中的值对应于子工程的artifact名。而且该POM的packaging类型必须为pom。<br />&#160;&#160;&#160; 有了demo工程后，我们只需要在demo目录下执行相关命令就可以了。通过如下命令即可验证：<br />&#160;&#160;&#160; [1]<font color="#0000ff">mvn clean</font> &#8211; 消除工程(包括所有子工程)中产生的所有输出。这本文的实例中，实际上是删除target目录。由于之前的操作只有app工程产生了target目录，而webapp并没有，所以将只会删除app工程中的target目录。<br />&#160;&#160;&#160; [2]<font color="#0000ff">mvn package</font> &#8211; 将工程制作成相应的包，app工程是作成jar包(app-1.0.jar)，webapp工程是作成war包(webapp-1.0.war)。打开webapp-1.0.war包，可以发现app-1.0.jar被放到了WEB-INF的lib目录中。<br /><font size="3"><b>6 小结</b></font><br />&#160;&#160;&#160; 通过以上的叙述与实例，应该可以对Maven有一个粗略的认识了。使用Maven关键是要弄清楚如何写pom.xml文件，就如同使用Ant要会写build.xml文件一样。在POM中可以直接写入Ant的task脚本，也可以调用Ant的build.xml文件(推荐)，所以Maven也可以完成Ant的绝大多数工作(但不必安装Ant)。注意：<b>使用Maven就不要再过多的使用Ant脚本</b>。<br />&#160;&#160;&#160; 利用好Maven的继承特性及子工程的关系，可以很好地简化POM文件，并能够构建层次结构良好的工程，有利于工程的维护。<br /><font size="3"><b>7 参考资源</b></font><br />[1]Maven官方网站. http://maven.apache.org<br />[2]Maven POM文件参考结构. http://maven.apache.org/ref/current/maven-model/maven.html<br />[3]Super POM. http://maven.apache.org/guides/introduction/introduction-to-the-pom.html<br />[4]Maven主要插件的列表. http://maven.apache.org/plugins<br />[5]Maven基本使用指南. http://maven.apache.org/guides/index.html<br />[6]Better Build with Maven. http://www.mergere.com/m2book_download.jsp -- 强烈推荐<br />[7]介绍Maven2. http://www.javaworld.com/javaworld/jw-12-2005 /jw-1205-maven_p.html<br />[8]揭秘Maven2 POM. http://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html<br />[9]Maven让事情变得简单. http://www-128.ibm.com/developerworks/cn/java/j-maven<br />[10]Maven文档集. http://docs.codehaus.org/display/MAVENUSER/Home<br />[11]有效利用Maven2的站点生成功能. http://www.matrix.org.cn/resource/article/44/44491_Maven2.html<br /><font size="3"><b>文中例子程序下载：<a href="/files/jiangshachina/maven.rar"><font color="#6fbc4c">http://www.blogjava.net/files/jiangshachina/maven.rar</font></a></b></font><br /></font> <img src ="http://www.blogjava.net/xzclog/aggbug/77910.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2006-10-29 16:29 <a href="http://www.blogjava.net/xzclog/archive/2006/10/29/77910.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ant的一些偏门技巧 </title><link>http://www.blogjava.net/xzclog/archive/2006/10/23/76739.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Mon, 23 Oct 2006 05:40:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2006/10/23/76739.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/76739.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2006/10/23/76739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/76739.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/76739.html</trackback:ping><description><![CDATA[		<span>
				<strong>一，为减小 build.xml 文件的大小，使用XML实体<?XML:NAMESPACE PREFIX = O /?><o:p></o:p></strong>
		</span>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">把属性的设置都放一个</span>
				<span lang="EN-US">XML</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">props.xml</span>
				<span lang="EN-US">
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">property</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">name</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">="build.dir"</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">value</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">="build"</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'">/&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后在</span>
				<span lang="EN-US">build.xml</span>
				<span lang="EN-US">
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中加入如下</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-font-kerning: 0pt">&lt;!</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Arial; mso-font-kerning: 0pt">DOCTYPE </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Arial; mso-font-kerning: 0pt">project </span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-font-kerning: 0pt">[</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: Arial; mso-font-kerning: 0pt">&lt;!ENTITY properties SYSTEM "file:props.xml"&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial; mso-font-kerning: 0pt">]&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span font-family:="" new="" mso-hansi-font-family:="" mso-ascii-font-family:="" 宋体;="" roman?;="" ?times="" roman??="">
						<strong>二，将多个目录的源文件编译到一个地方</strong>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">javac</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">destdir</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">="build/classes"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">src</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">path</span>
						<span style="COLOR: blue">="src1"/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">src</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">path</span>
						<span style="COLOR: blue">="src2"/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;/</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">javac</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span font-family:="" new="" mso-hansi-font-family:="" mso-ascii-font-family:="" 宋体;="" roman?;="" ?times="" roman??="">
						<strong>三，保存构建时的信息</strong>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">project</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">default</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">="init"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">name</span>
						<span style="COLOR: blue">="init"&gt;&lt;/</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">property</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">environment</span>
						<span style="COLOR: blue">="env"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">property</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">name</span>
						<span style="COLOR: blue">="env.COMPUTERNAME"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">value</span>
						<span style="COLOR: blue">="${env.HOSTNAME}"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">propertyfile</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">comment</span>
						<span style="COLOR: blue">="Build Information"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">file</span>
						<span style="COLOR: blue">="./buildinfo.properties"&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">entry</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">key</span>
						<span style="COLOR: blue">="build.host"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">value</span>
						<span style="COLOR: blue">="${env.COMPUTERNAME}"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">entry</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">key</span>
						<span style="COLOR: blue">="build.user.name"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">value</span>
						<span style="COLOR: blue">="${user.name}"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">entry</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">key</span>
						<span style="COLOR: blue">="build.os.name"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">value</span>
						<span style="COLOR: blue">="${os.name}"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;/</span>
						<span style="COLOR: maroon">propertyfile</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;/</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">project</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span font-family:="" new="" mso-hansi-font-family:="" mso-ascii-font-family:="" 宋体;="" roman?;="" ?times="" roman??="">
						<strong>四，去除属性文件的注释</strong>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">属性文件：</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"># </span>
				<span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">这里是注释，会给过滤掉</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">build.dir <span style="COLOR: red">=</span><span style="COLOR: #3366ff">build<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">build</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件：</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">copy</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">file</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">="props.properties"</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">todir</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">="sample"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">filterchain</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">striplinecomments</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 3">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">comment</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">value</span>
						<span style="COLOR: blue">="#"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;/</span>
						<span style="COLOR: maroon">striplinecomments</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;/</span>
						<span style="COLOR: maroon">filterchain</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;/</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">copy</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span font-family:="" new="" mso-hansi-font-family:="" mso-ascii-font-family:="" 宋体;="" roman?;="" ?times="" roman??="">
						<strong>五，两个花俏的功能</strong>
				</span>
				<span lang="EN-US" style="FONT-SIZE: 12pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">1.</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">声音提示</span>
				<span lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">project</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">name</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">="Sound"</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">default</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">="all"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">property</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">file</span>
						<span style="COLOR: blue">="build.properties"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">name</span>
						<span style="COLOR: blue">="init"&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">sound</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 3">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">success</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">source</span>
						<span style="COLOR: blue">="${sound.dir}/success.wav"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">duration</span>
						<span style="COLOR: blue">="500"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 3">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">fail</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">source</span>
						<span style="COLOR: blue">="${sound.dir}/fail.wav"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">loops</span>
						<span style="COLOR: blue">="2"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;/</span>
						<span style="COLOR: maroon">sound</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;/</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">name</span>
						<span style="COLOR: blue">="fail"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">depends</span>
						<span style="COLOR: blue">="init"&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">fail</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;/</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">name</span>
						<span style="COLOR: blue">="success"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">depends</span>
						<span style="COLOR: blue">="init"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">name</span>
						<span style="COLOR: blue">="all"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">depends</span>
						<span style="COLOR: blue">="success"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;/</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">project</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">2.</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进度条提示</span>
				<span lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">project</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">name</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">="splash"</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: fuchsia; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
				</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">default</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">="init"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">name</span>
						<span style="COLOR: blue">="init"&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">splash</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">imageurl</span>
						<span style="COLOR: blue">="http://java.chinaitlab.com/UploadFiles_8734/200610/20061021103415601.gif"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">showduration</span>
						<span style="COLOR: blue">="5000"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">sleep</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">seconds</span>
						<span style="COLOR: blue">="1"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">sleep</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">seconds</span>
						<span style="COLOR: blue">="1"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">sleep</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">seconds</span>
						<span style="COLOR: blue">="1"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">sleep</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">seconds</span>
						<span style="COLOR: blue">="1"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">sleep</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">seconds</span>
						<span style="COLOR: blue">="1"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;</span>
						<span style="COLOR: maroon">sleep</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: red">seconds</span>
						<span style="COLOR: blue">="1"</span>
						<span style="COLOR: fuchsia">
						</span>
						<span style="COLOR: blue">/&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">
						<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
						<span style="COLOR: blue">&lt;/</span>
						<span style="COLOR: maroon">target</span>
						<span style="COLOR: blue">&gt;<o:p></o:p></span>
				</span>
		</p>
		<p class="MsoNormal" style="BACKGROUND: #f3f3f3; MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&lt;/</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">project</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">&gt;</span>
		</p>
 <img src ="http://www.blogjava.net/xzclog/aggbug/76739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2006-10-23 13:40 <a href="http://www.blogjava.net/xzclog/archive/2006/10/23/76739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>