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

<channel>
	<title>JavaChen on Javamaven</title>
	<atom:link href="http://www.javachen.com/tag/maven/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.javachen.com</link>
	<description>Just some sharing about Java open source and life</description>
	<lastBuildDate>Fri, 03 Feb 2012 03:33:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>初涉Ant</title>
		<link>http://www.javachen.com/2010/03/begin-to-study-apache-ant/</link>
		<comments>http://www.javachen.com/2010/03/begin-to-study-apache-ant/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 05:49:51 +0000</pubDate>
		<dc:creator>JavaChen</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[MyEclipse]]></category>
		<category><![CDATA[Open Sources]]></category>

		<guid isPermaLink="false">http://www.javachen.com/?p=1151</guid>
		<description><![CDATA[之前写了一篇关于maven的文章，觉得maven过于复杂，而且现在项目中根本没有使用，所以只是简单的了解了以下。在了解maven的过程当中，发现了ant这一熟悉而又陌生的名称，网上还有一些关于maven和ant对比的文章。关于ant，每次打开myeclipse的时候总会看到他，却不知道他有什么作用，于是准备从ant开始，进而学习maven，再次学会利用maven构建自己的项目，就当作充实自己的技术面吧！ 初识Ant Apache Ant，是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具，大多用于Java环境中的软件开发。 Ant的原名为Another neat tool,翻译过来为另外一个干净的工具，在Java程序的开发中，ant是一个极好的助手。Ant使用XML格式的文件作为其运行的脚本,xml已经被大多数组织承认为通用的数据交换协议，具有容易阅读，编写，修改等良好的特性，被大多数人所接受。Ant运行的XML脚本文件中的每个元素都代表一个动作，ant通过动作调用相应的程序来执行任务，完成用户的操作。执行命令是ant的基本目标，把完成一项任务所需的命令按照正常的顺序写入ant脚本文件，ant调用脚本顺序执行，便可以完成一项大的任务。脚本具有一次完成编写，多次使用的特性，适合可重复的，顺序完成的任务。 默认情况下，XML文件名为bild.xml 。 构建ant环境 要使用ant首先要构建一个ant环境，步骤很简单： 1),安装jdk，设置JAVA_HOME ,PATH ,CLASS_PATH 2),下载ant 地址www.apache.org 3), 解压ant 你得到的是一个压缩包，解压缩它，并把它放在一个尽量简单的目录 4), 设置ANT_HOME PATH中添加ANT_HOME目录下的bin目录 5),测试一下你的设置,开始&#8211;&#62;运行&#8211;&#62;cmd进入命令行&#8211;&#62;键入 ant 回车,如果看到 Buildfile: build.xml does not exist! Build failed 那么恭喜你你已经完成ant的设置 使用Ant &#60;?xml version=”1.0&#8243; encoding=”UTF-8&#8243;?&#62; &#60;project name=”HelloWorld” default=”run” basedir=”./”&#62; &#60;property name=”src” value=”src” /&#62; &#60;property name=”build.dir” value=”build” /&#62; &#60;property name=”build.classes” value=”${build.dir}/classes” /&#62; &#60;property name=”build.lib” [...]<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="使用maven建立基本开发结构" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">使用maven建立基本开发结构</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="优化 myeclipse7.5" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F10%2Fmyeclipse7-0_option%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">优化 myeclipse7.5</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Apache Commons Lang ToStringStyle" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F12%2Fapache-commons-lang-tostringstyle%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Apache Commons Lang ToStringStyle</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="MyEclipse 反编译插件jad安装方法" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F05%2Fmyeclipse-8-5_jad_installer_method%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">MyEclipse 反编译插件jad安装方法</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="JFreeChart 生成饼状图" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F04%2Fjfreechart-create_piechart%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/05/31/10381940.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">JFreeChart 生成饼状图</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>之前写了一篇关于maven的文章，觉得maven过于复杂，而且现在项目中根本没有使用，所以只是简单的了解了以下。在了解maven的过程当中，发现了ant这一熟悉而又陌生的名称，网上还有一些关于maven和ant对比的文章。关于ant，每次打开myeclipse的时候总会看到他，却不知道他有什么作用，于是准备从ant开始，进而学习maven，再次学会利用maven构建自己的项目，就当作充实自己的技术面吧！<span id="more-1151"></span></p>
<p><span style="color: #0000ff;"><strong>初识Ant</strong></span></p>
<p>Apache Ant，是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具，大多用于Java环境中的软件开发。<br />
Ant的原名为Another neat tool,翻译过来为另外一个干净的工具，在Java程序的开发中，ant是一个极好的助手。Ant使用XML格式的文件作为其运行的脚本,xml已经被大多数组织承认为通用的数据交换协议，具有容易阅读，编写，修改等良好的特性，被大多数人所接受。Ant运行的XML脚本文件中的每个元素都代表一个动作，ant通过动作调用相应的程序来执行任务，完成用户的操作。执行命令是ant的基本目标，把完成一项任务所需的命令按照正常的顺序写入ant脚本文件，ant调用脚本顺序执行，便可以完成一项大的任务。脚本具有一次完成编写，多次使用的特性，适合可重复的，顺序完成的任务。<br />
默认情况下，XML文件名为bild.xml 。</p>
<p><span style="color: #0000ff;"><strong>构建ant环境</strong></span></p>
<p>要使用ant首先要构建一个ant环境，步骤很简单：<br />
1),安装jdk，设置JAVA_HOME ,PATH ,CLASS_PATH<br />
2),下载ant 地址www.apache.org<br />
3), 解压ant 你得到的是一个压缩包，解压缩它，并把它放在一个尽量简单的目录<br />
4), 设置ANT_HOME PATH中添加ANT_HOME目录下的bin目录<br />
5),测试一下你的设置,开始&#8211;&gt;运行&#8211;&gt;cmd进入命令行&#8211;&gt;键入 ant 回车,如果看到<br />
Buildfile: build.xml does not exist!<br />
Build failed<br />
那么恭喜你你已经完成ant的设置</p>
<p><span style="color: #0000ff;"><strong>使用Ant</strong></span><br />
&lt;?xml version=”1.0&#8243; encoding=”UTF-8&#8243;?&gt;<br />
&lt;project name=”HelloWorld” default=”run” basedir=”./”&gt;<br />
&lt;property name=”src” value=”src” /&gt;</p>
<p>&lt;property name=”build.dir” value=”build” /&gt;<br />
&lt;property name=”build.classes” value=”${build.dir}/classes” /&gt;<br />
&lt;property name=”build.lib” value=”${build.dir}/lib” /&gt;<br />
&lt;property name=”hello_jar” value=”${build.lib}/hello1.jar” /&gt;<br />
&lt;target name=”init”&gt;<br />
&lt;mkdir dir=”${build.dir}” /&gt;<br />
&lt;mkdir dir=”${build.lib}” /&gt;<br />
&lt;mkdir dir=”${build.classes}” /&gt;<br />
&lt;/target&gt;<br />
&lt;target name=”compile” depends=”init”&gt;<br />
&lt;javac srcdir=”${src}” destdir=”${build.classes}” /&gt;<br />
&lt;/target&gt;<br />
&lt;target name=”build” depends=”compile”&gt;<br />
&lt;jar jarfile=”${hello_jar}” basedir=”${build.classes}” /&gt;<br />
&lt;/target&gt;<br />
&lt;target name=”run” depends=”build”&gt;<br />
&lt;java classname=”com.javachen.ant.HelloWorld” classpath=”${build.classes}” /&gt;<br />
&lt;/target&gt;<br />
&lt;target name=”clean”&gt;<br />
&lt;delete dir=”${build.dir}” /&gt;<br />
&lt;delete file=”${hello_jar}” /&gt;<br />
&lt;/target&gt;<br />
&lt;target name=”rerun” depends=”run,clean”&gt;<br />
&lt;ant target=”clean” /&gt;<br />
&lt;ant target=”run” /&gt;<br />
&lt;/target&gt;<br />
&lt;/project&gt;</p>
<p>&lt;project name=”HelloWorld” default=”run” basedir=”.”&gt;<br />
&lt;/project&gt;</p>
<p><span style="color: #0000ff;">分析说明：</span></p>
<p>ant 的所有内容必须包含在这个里边，<span style="color: #ff00ff;">name是你给它取的名字，basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的事情</span>。</p>
<p>特性定义允许我们避免在构建文件中将目录名硬编码。这些路径通常都是相对于&lt;project&gt; 元素所指定的基目录。<br />
例如，以下标签设置了源文件目录名。<br />
&lt;property name=”src” value=”src”/&gt;<br />
类似程序中的变量，为什么这么做想一下变量的作用</p>
<p>其后，这个构建文件定义了多个目标。每个目标都有一个名字，如“prepare”、“clean”或“compile”。开发人员从命令行调用Ant 时要结合这些目标名。每个目标定义了0 个或多个依赖关系（d e p e n d e n c y ）， 同时还有一个可选的description 属性（attribute）。依赖关系指定了在当前目标执行之前，Ant 必须先执行的目标。例如“prepare”必须在“compile”之前执行。对于Ant 将显示的目标，description 属性为其提供一个适合阅读的描述。</p>
<p>把你想做的每一件事情写成一个target ，它有一个名字，depends是它所依赖的target，在执行这个target 例如这里的compile之前ant会先检查init是否曾经被执行过，如果执行过则直接直接执行compile，如果没有则会先执行它依赖的 target例如这里的init，然后在执行这个target。</p>
<p>如我们的计划<br />
<span style="color: #0000ff;">编译：</span><br />
&lt;target name=”compile” depends=”init”&gt;<br />
&lt;javac srcdir=”${src}” destdir=”${build.classes}” /&gt;<br />
&lt;/target&gt;</p>
<p><span style="color: #0000ff;">做jar包:</span><br />
&lt;target name=”build” depends=”compile”&gt;<br />
&lt;jar jarfile=”${hello_jar}” basedir=”${build.classes}” /&gt;<br />
&lt;/target&gt;<br />
<span style="color: #0000ff;">运行：</span><br />
&lt;target name=”run” depends=”build”&gt;<br />
&lt;java classname=”com.javachen.ant.HelloWorld” classpath=”${build.classes}” /&gt;<br />
&lt;/target&gt;<br />
为了不用拷贝，我们可以在最开始定义好目标文件夹，这样ant直接把结果就放在目标文件夹中了.<br />
<span style="color: #0000ff;">新建文件夹:</span><br />
&lt;target name=”init”&gt;<br />
&lt;mkdir dir=”${build.dir}” /&gt;<br />
&lt;mkdir dir=”${build.lib}” /&gt;<br />
&lt;mkdir dir=”${build.classes}” /&gt;<br />
&lt;/target&gt;<br />
为了更多一点的功能体现，又加入了两个target:<br />
<span style="color: #0000ff;">删除生成的文件</span><br />
&lt;target name=”clean”&gt;<br />
&lt;delete dir=”${build.dir}” /&gt;<br />
&lt;delete file=”${hello_jar}” /&gt;<br />
&lt;/target&gt;<br />
<span style="color: #0000ff;">再次运行</span>，这里显示了如何在一个target里边调用其他的target<br />
&lt;target name=”rerun” depends=”clean,run”&gt;<br />
&lt;ant target=”clean” /&gt;<br />
&lt;ant target=”run” /&gt;<br />
&lt;/target&gt;</p>
<p><span style="color: #0000ff;"><strong>Ant build.xml配置文件解释</strong></span></p>
<div><span style="color: #0000ff;">&lt;project&gt;标签</span><br />
每个构建文件对应一个项目。&lt;project&gt;标签时构建文件的根标签。它可以有多个内在属性，<span>就如代码中所示，其各个属性 的含义分别如下。<br />
<span style="color: #ff6600;">(1) default表示默认的运行目标，这个属性是必须的。<br />
(2) basedir表示项目的基准目录。<br />
(3) name表示项目名。<br />
(4) description表示项目的描述。</span><br />
</span></div>
<p><span><span style="color: #0000ff;">&lt;target&gt;标签<br />
</span>一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target标签。例</span><span>如， 有一个target用于编译程序，另一个target用于声称可执行文件。在生成可执行文件之前必</span><span>须先编译该文件，因策可执行 文件的target依赖于编译程序的target。Target的所有属性如下。<br />
<span style="color: #008080;"><span style="color: #ff6600;">(1).name表示标明，这个属性是必须的。<br />
(2).depends表示依赖的目标。<br />
(3)if表示仅当属性设置时才执行。<br />
(4)unless表示当属性没有设置时才执行。<br />
(5)description表示项目的描述。</span><br />
</span>Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序依次执行</span><span>每个 target。在执行之前，首先需要执行它所依赖的target。程序中的名为run的target的</span><span>depends属性 compile，而名为compile的target的depends属性是prepare，所以这几个target执</span><span>行的顺 序是 <span style="color: #ff0000;">prepare-&gt;compile-&gt;run</span>。</span><span>一 个target只能被执行一次，即使有多个target依赖于它。如果没有if或unless属性，target总</span><span>会被执行。</span></p>
<p><span><span style="color: #0000ff;">&lt;mkdir&gt;标签</span><br />
该标签用于创建一个目录，它有一个属性dir用来指定所创建的目录名，其代码如下：<br />
<span style="color: #ff6600;">&lt;mkdir dir=”＄{class.root}”/&gt;</span><br />
通过以上代码就创建了一个目录，这个目录已经被前面的property标签所指定。</span></p>
<p><span><span style="color: #0000ff;">&lt;jar&gt;标签</span><br />
该标签用来生成一个JAR文件，其属性如下。<br />
<span style="color: #ff6600;">(1) destfile表示JAR文件名。<br />
(2) basedir表示被归档的文件名。<br />
(3) includes表示别归档的文件模式。<br />
(4) exchudes表示被排除的文件模式。</span></span></p>
<p><span><span style="color: #0000ff;">&lt;javac标签&gt;</span><br />
该标签用于编译一个或一组java文件，其属性如下。<br />
<span style="color: #ff6600;">(1).srcdir表示源程序的目录。<br />
(2).destdir表示class文件的输出目录。<br />
(3).include表示被编译的文件的模式。<br />
(4).excludes表示被排除的文件的模式。<br />
(5).classpath表示所使用的类路径。<br />
(6).debug表示包含的调试信息。<br />
(7).optimize表示是否使用优化。<br />
(8).verbose 表示提供详细的输出信息。<br />
(9).fileonerror表示当碰到错误就自动停止。</span></span></p>
<p><span><span style="color: #0000ff;">&lt;java&gt;标签</span><br />
该标签用来执行编译生成的.class文件，其属性如下。<br />
<span style="color: #ff6600;">(1).classname 表示将执行的类名。<br />
(2).jar表示包含该类的JAR文件名。<br />
(3).classpath所表示用到的类路径。<br />
(4).fork表示在一个新的虚拟机中运行该类。<br />
(5).failonerror表示当出现错误时自动停止。<br />
(6).output 表示输出文件。<br />
(7).append表示追加或者覆盖默认文件。</span></span></p>
<p><span><span style="color: #0000ff;">&lt;delete&gt;标签</span><br />
该标签用于删除一个文件或一组文件，去属性如下。<br />
<span style="color: #ff6600;">(1)/file表示要删除的文件。<br />
(2).dir表示要删除的目录。<br />
(3).includeEmptyDirs 表示指定是否要删除空目录，默认值是删除。<br />
(4).failonerror 表示指定当碰到错误是否停止，默认值是自动停止。<br />
(5).verbose表示指定是否列出所删除的文件，默认值为不列出。</span></span></p>
<p><span><span style="color: #0000ff;">&lt;copy&gt;标签</span><br />
该标签用于文件或文件集的拷贝，其属性如下。<br />
<span style="color: #ff6600;">(1).file 表示源文件。<br />
(2).tofile 表示目标文件。<br />
(3).todir 表示目标目录。<br />
(4).overwrite 表示指定是否覆盖目标文件，默认值是不覆盖。<br />
(5).includeEmptyDirs 表示制定是否拷贝空目录，默认值为拷贝。<br />
(6).failonerror 表示指定如目标没有发现是否自动停止，默认值是停止。<br />
(7).verbose 表示制定是否显示详细信息，默认值不显示。</span></span></p>
<p><span style="color: #0000ff;"><strong>Ant的数据类型</strong></span></p>
<p>在构建文件中为了标识文件 或文件组，经常需要使用数据类型。数据类型包含在 org.apache.tool.ant.types包中。下面镜简单介绍构建文件中一些常用的数据类型。<br />
1. argument 类型<br />
由Ant构建文件调用的程序，可以通过&lt;arg&gt;元素向其传递命令行参数，如 apply,exec和java任务均可接受嵌套&lt;arg&gt;元素，可以为各自的过程调用指定参数。以下 是&lt;arg&gt;的所有属性。<br />
(1).values 是一个命令参数。如果参数种有空格，但又想将它作为单独一个值，则使用此属性。<br />
(2).file表示一个参数的文件名。在构建文件中，此文件名相对于当前的工作目录。<br />
(3).line表示用空格分隔的多个参数列表。<br />
(4).path表示路径。</p>
<p>2.ervironment 类型<br />
由Ant构建文件调用的外部命令或程序，&lt;env&gt;元素制定了哪些环境变量 要传递给正在执行的系统命令，&lt;env&gt;元素可以接受以下属性。<br />
(1).file表示环境变量值得文件名。此文件名要被转换位一个绝对路径。<br />
(2).path表示环境变量的路径。Ant会将它转换为一个本地约定。<br />
(3).value 表示环境变量的一个直接变量。<br />
(4).key 表示环境变量名。<br />
注意  file path 或 value只能取一个。</p>
<p>3.filelist类型<br />
Filelist 是一个支持命名的文件列表的数据类型，包含在一个filelist类型中的文件不一定是存在的文件。以下 是其所有的属性。<br />
(1).dir是用于计算绝对文件名的目录。<br />
(2).files 是用逗号分隔的文件名列表。<br />
(3).refid 是对某处定义的一个&lt;filelist&gt;的引用。<br />
注意  dir 和 files 都是必要的，除非指定了refid(这种情况下，dir和files都不允许使用)。</p>
<p>4.fileset类型<br />
Fileset 数据类型定义了一组文件，并通常表示为&lt;fileset&gt;元素。不过，许多ant任 务构建成了隐式的fileset,这说明他们支持所有的fileset属性和嵌套元素。以下为fileset 的属性列表。<br />
(1).dir表示fileset 的基目录。<br />
(2).casesensitive的值如果为false，那么匹配文件名时，fileset不是区分大小写的，其默认值为 true.<br />
(3).defaultexcludes 用来确定是否使用默认的排除模式，默认为true。<br />
(4).excludes 是用逗号分隔的需要派出的文件模式列表。<br />
(5).excludesfile 表示每行包含一个排除模式的文件的文件名。<br />
(6).includes 是用逗号分隔的，需要包含的文件模式列表。<br />
(7).includesfile 表示每行包括一个包含模式的文件名。</p>
<p>5.patternset 类型<br />
Fileset 是对文件的分组，而patternset是对模式的分组，他们是紧密相关的概念。&lt;patternset&gt; 支持4个属性：includes excludex includexfile 和 excludesfile,与fileset相同。 Patternset 还允许以下嵌套元素：include,exclude,includefile 和 excludesfile.</p>
<p>6.filterset 类型<br />
Filterset定义了一组过滤器，这些过滤器将在文件移动或复制时完成文件的文本替换。主要属性如下：<br />
(1).begintoken 表示嵌套过滤器所搜索的记号，这是标识其开始的字符串。<br />
(2).endtoken表示嵌套过滤器所搜索的记号这是标识其结束的字符串。<br />
(3).id是过滤器的唯一标志符。<br />
(4).refid是对构建文件中某处定义一个过滤器的引用。</p>
<p>7.Path类型<br />
Path元素用来表示一个类路径，不过它还可以用于表示其他的路径。在用作揖个属性时，路经中的各项用分号或冒号隔开。在构建 的时候，此分隔符将代替当前平台中所有的路径分隔符，其拥有的属性如下。<br />
(1).location 表示一个文件或目录。Ant在内部将此扩展为一个绝对路径。<br />
(2).refid 是对当前构建文件中某处定义的一个path的引用。<br />
(3).path表示一个文件或路径名列表。</p>
<p>8.mapper类型<br />
Mapper类型定义了一组输入文件和一组输出文件间的关系，其属性如下。<br />
(1).classname 表示实现mapper类的类名。当内置mapper不满足要求时，用于创建定制mapper.<br />
(2).classpath表示查找一个定制mapper时所用的类型路径。<br />
(3).classpathref是对某处定义的一个类路径的引用。<br />
(4).from属性的含义取决于所用的mapper.<br />
(5).to属性的含义取决于所用的mapper.<br />
(6).type属性的取值为identity，flatten glob merge  regexp  其中之一，它定义了要是用的内 置mapper的类型。</p>
<p><span style="color: #0000ff;"><strong>关于构建文件有几点需要记住：</strong></span><br />
● 所有构建文件都要有&lt;project&gt;元素，而且至少有一个&lt;target&gt; 元素。<br />
● 对于&lt;project&gt; 元素的default 属性并没有默认值。<br />
● 构建文件并不一定要被命名为build.xml。不过build.xml 是Ant 要搜索的默认文件名。<br />
● 每个构建文件只能有一个&lt;project&gt; 元素。</p>
<p><span style="color: #0000ff;"><strong>根据《ANT十五大最佳实践》，必须遵循以下几个原则：</strong></span><br />
1. 采用一致的编码规范<br />
精选含意明确、容易读懂的词汇来命名任务和属性。比如，dir.reports就比rpts好。特定的编码规范并不重要，只要拿出一套规范并坚持使用就行。</p>
<p>2. 将build.xml放在项目根目录中<br />
以下是一个典型的项目目录层次：<br />
[root dir]<br />
| build.xml<br />
+&#8211;src<br />
+&#8211;lib (包含第三方 JAR包)<br />
+&#8211;build (由 build任务生成)<br />
+&#8211;dist (由 build任务生成)<br />
当build.xml在顶级目录时，假设你处于项目某个子目录中，只要输入：ant -find compile 命令，不需要改变工作目录就能够以命令行方式编译代码。参数-find告诉Ant寻找存在于上级目录中的build.xml并执行。</p>
<p>3. 使用单一的构建文件<br />
4. 提供良好的帮助说明<br />
5. 提供清除任务<br />
6. 使用ANT管理任务从属关系<br />
7. 定义并重用文件路径<br />
8. 定义恰当的任务从属关系<br />
9. 使用属性<br />
10. 保持构建过程独立<br />
11. 使用版本控制系统<br />
12. 使用版本控制系统<br />
13. 使用zipfileset属性<br />
14. 测试Clean任务<br />
15. 避免特定平台的Ant封装</p>
<p><span style="color: #0000ff;"><strong>MyEclipse自动生成Ant Build.xml </strong></span></p>
<p>关于MyEclipse 自动生成 Ant Build.xml 配置文件,生成的方法很隐蔽,是自己无意中找到的.</p>
<p>选择你要生成Build.xml文件的项目,右键. Export-&gt; General -&gt; Ant Buildfiles .</p>
<p>点Next,再点Finish.  OK,生成完毕.然后自己再根据需求去修改.</p>
<p><span style="color: #0000ff;"><strong>参考资料：</strong></span><br />
ant 入门：http://www.blogjava.net/dreamstone/archive/2006/09/20/70649.html<br />
ANT十五大最佳实践：http://oreilly.com.cn/news/ant15toppractices.php?c=java<br />
《Ant权威指南》：http://oreilly.com.cn/book.php?bn=7-5083-1417-4</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="使用maven建立基本开发结构" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">使用maven建立基本开发结构</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="优化 myeclipse7.5" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F10%2Fmyeclipse7-0_option%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">优化 myeclipse7.5</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Apache Commons Lang ToStringStyle" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F12%2Fapache-commons-lang-tostringstyle%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Apache Commons Lang ToStringStyle</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="MyEclipse 反编译插件jad安装方法" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F05%2Fmyeclipse-8-5_jad_installer_method%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">MyEclipse 反编译插件jad安装方法</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="JFreeChart 生成饼状图" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F04%2Fjfreechart-create_piechart%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/05/31/10381940.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">JFreeChart 生成饼状图</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>By the time  your rss reader get this post here is <strong> 2 </strong>comments ,Welcome you come to leave your opinion !]]></content:encoded>
			<wfw:commentRss>http://www.javachen.com/2010/03/begin-to-study-apache-ant/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>使用maven建立基本开发结构</title>
		<link>http://www.javachen.com/2010/03/create_project_with_maven/</link>
		<comments>http://www.javachen.com/2010/03/create_project_with_maven/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 11:37:48 +0000</pubDate>
		<dc:creator>JavaChen</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[Open Sources]]></category>

		<guid isPermaLink="false">http://www.javachen.com/?p=1133</guid>
		<description><![CDATA[在研究Struts2时候，看到用maven建立基本开发结构，感到很陌生，决定查查资料，熟悉maven，于是有了这篇入门文章熟悉maven的一些概念。由于最近的项目还没有用到maven，所以打算只是简单了解Maven，方便以后查阅之用。 建议初学者看看这篇文章：http://holylin.javaeye.com/blog/25527 Maven Maven是基于项目对象模型(POM)，可以通过一小段描述信息来管理项目的构建，报告和文档的软件项目管理工具. 如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs，你一定会自问，是否有有一个重复性更少却能同样完成该工作的方法。Maven便 提供了这样一种选择，将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码，运行测试，生成文档并宿主项目网页. Maven是一个项目管理工具，它包含了一个项目对象模型 (Project Object Model)，一组标准集合，一个项目生命周期(Project Lifecycle)，一个依赖管理系统(Dependency Management System)，和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候，你用一个明确定 义的项目对象模型来描述你的项目，然后Maven可以应用横切的逻辑，这些逻辑来自一组共享的（或者自定义的）插件。 Maven 有一个生命周期，当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤，直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是，Maven 运行了许多默认的插件目标，这些目标完成了像编译和创建一个 JAR 文件这样的工作。 常见的名称概念 Project：任 何您想build的事物，Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM，Poject Object Model)。一个工程可以依赖其它的工程；一个工程也可以由多个子工程构成。 POM：POM(pom.xml) 是Maven的核心文件，它是指示Maven如何工作的元数据文件，类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。 GroupId：groupId是一个工程的在全局中唯一的标识符，一般地，它就是工程名。groupId有利于使 用一个完全的包名，将一个工程从其它有类似名称的工程里区别出来。 Artifact：artifact 是工程将要产生或需要使用的文件，它可以是jar文件，源文件，二进制文件，war文件，甚至是pom文件。每个artifact都由groupId和 artifactId组合的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中，否则Maven无法找到 (识别)它们。 Dependency：为了能够build或运行，一个典型的Java工程会依赖其 它的包。在Maven中，这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。 Plug-in：Maven 是由插件组织的，它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target)，并根据在POM中找到的元数据去完成工作。主要的 Maven插件要是由Java写成的，但它也支持用Beanshell或Ant脚本写成的插件。 Repository： 仓库用于存放artifact，它可以是本地仓库，也可以是远程仓库。Maven有一个默认的远程仓库&#8211;central，可以从http://www.ibiblio.org/maven/下载其中的artifact。在 Windows平台上，本地仓库的默认地址是User_Home\.m2\repository。 Snapshot：工程中可以(也应该)有一个特殊版本，它的版本号包括SNAPSHOT字样。 该版本可以告诉Maven，该工程正处于开发阶段，会经常更新(但还未发布)。当其它工程使用此类型版本的artifact时，Maven会在仓库中寻找 该artifact的最新版本，并自动下载、使用该最新版。 生命周期 软件项目一般都有相似的开发过程：准备，编译，测试，打包和部署，Maven将上述过程称为Build Life Cycle。在Maven中，这些生命周期由一系列的短语组成，每个短语对应着一个(或多个)操作；或对应着一个(或多个)goal(类似于Ant中的 target)。 如编译源文件的命令mvn [...]<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="初涉Ant" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">初涉Ant</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="JFreeChart 生成饼状图" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F04%2Fjfreechart-create_piechart%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/05/31/10381940.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">JFreeChart 生成饼状图</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="在Dom4j中使用xpath解析xml" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F10%2Fdom4j_xpath_for_xml%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">在Dom4j中使用xpath解析xml</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Log4j" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F11%2Fabout-log4j%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Log4j</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="JSON-RPC-Java" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjson-rpc-java%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">JSON-RPC-Java</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>在研究Struts2时候，看到用maven建立基本开发结构，感到很陌生，决定查查资料，熟悉maven，于是有了这篇入门文章熟悉maven的一些概念。由于最近的项目还没有用到maven，所以打算只是简单了解Maven，方便以后查阅之用。</p>
<p>建议初学者看看这篇文章：<a href="http://holylin.javaeye.com/blog/25527">http://holylin.javaeye.com/blog/25527</a><span id="more-1133"></span></p>
<p><span style="color: #0000ff;"><strong>Maven</strong></span></p>
<p>Maven是基于项目对象模型(POM)，可以通过一小段描述信息来管理项目的构建，报告和文档的软件项目管理工具.<br />
如果你已经有十次输入同样的Ant  targets来编译你的代码、jar或者war、生成javadocs，你一定会自问，是否有有一个重复性更少却能同样完成该工作的方法。Maven便 提供了这样一种选择，将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码，运行测试，生成文档并宿主项目网页.</p>
<p>Maven是一个项目管理工具，它包含了一个项目对象模型 (Project Object  Model)，一组标准集合，一个项目生命周期(Project Lifecycle)，一个依赖管理系统(Dependency Management   System)，和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候，你用一个明确定 义的项目对象模型来描述你的项目，然后Maven可以应用横切的逻辑，这些逻辑来自一组共享的（或者自定义的）插件。<br />
Maven 有一个生命周期，当你运行 mvn install 的时候被调用。这条命令告诉  Maven 执行一系列的有序的步骤，直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是，Maven  运行了许多默认的插件目标，这些目标完成了像编译和创建一个 JAR 文件这样的工作。</p>
<p><span style="color: #0000ff;"><strong>常见的名称概念</strong></span></p>
<p>Project：任 何您想build的事物，Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM，Poject Object Model)。一个工程可以依赖其它的工程；一个工程也可以由多个子工程构成。<br />
POM：POM(pom.xml) 是Maven的核心文件，它是指示Maven如何工作的元数据文件，类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。<br />
GroupId：groupId是一个工程的在全局中唯一的标识符，一般地，它就是工程名。groupId有利于使 用一个完全的包名，将一个工程从其它有类似名称的工程里区别出来。<br />
Artifact：artifact 是工程将要产生或需要使用的文件，它可以是jar文件，源文件，二进制文件，war文件，甚至是pom文件。每个artifact都由groupId和 artifactId组合的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中，否则Maven无法找到 (识别)它们。<br />
Dependency：为了能够build或运行，一个典型的Java工程会依赖其 它的包。在Maven中，这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。<br />
Plug-in：Maven 是由插件组织的，它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target)，并根据在POM中找到的元数据去完成工作。主要的 Maven插件要是由Java写成的，但它也支持用Beanshell或Ant脚本写成的插件。<br />
Repository： 仓库用于存放artifact，它可以是本地仓库，也可以是远程仓库。Maven有一个默认的远程仓库&#8211;central，可以从http://www.ibiblio.org/maven/下载其中的artifact。在 Windows平台上，本地仓库的默认地址是User_Home\.m2\repository。<br />
Snapshot：工程中可以(也应该)有一个特殊版本，它的版本号包括SNAPSHOT字样。 该版本可以告诉Maven，该工程正处于开发阶段，会经常更新(但还未发布)。当其它工程使用此类型版本的artifact时，Maven会在仓库中寻找 该artifact的最新版本，并自动下载、使用该最新版。</p>
<p><span style="color: #0000ff;"><strong>生命周期</strong></span></p>
<p>软件项目一般都有相似的开发过程：准备，编译，测试，打包和部署，Maven将上述过程称为Build Life Cycle。在Maven中，这些生命周期由一系列的短语组成，每个短语对应着一个(或多个)操作；或对应着一个(或多个)goal(类似于Ant中的 target)。<br />
如编译源文件的命令mvn compile中的 compile是一个生命周期短语。同时该命令也可以等价于mvn compiler:compile， 其中的compiler是一个插件，它提供了compile(此compile与mvn compile中的compile意义不同)goal；compiler 还可提供另一个goal&#8211;testCompile，该goal用于编译junit测试类。<br />
在执行某一个生命周期时，Maven会首先执行该生命周期之前的其它周期。如要执行compile，那么将首先执行validate，generate- source，process-source和generate-resources，最后再执行compile本身。</p>
<p><span style="color: #0000ff;"><strong>Maven的原理 </strong></span><br />
作为构建工具，Maven和Ant一样，利用构建配置文件进行编译，打包，测试等操作。您可以用Maven自带的功能进行任何的操作，但前提是做好了相应 的配置。当然，修改已有的模板来开始新的项目是个好方法。除非您在写特有的task，不然都会有target重用的问题。<br />
Maven进行了一些改进。您将项目配置内容写成XML文件，并且可以使用很多Maven自带的功能。另外还可以在Maven项目中调用任何Ant的 task。<br />
Maven自带的”goals”有以下功能:<br />
编译源代码<br />
产生Javadoc文档<br />
运行unit测试<br />
源代码文法分析<br />
产生违反团队编码规范的详细报告<br />
产生CVS最新提交报告<br />
产生CVS更改最频繁的文件报告和提交最频繁的开发人员报告<br />
产生可以交叉引用的HTML格式的源代码，等等。</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="初涉Ant" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fbegin-to-study-apache-ant%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">初涉Ant</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="JFreeChart 生成饼状图" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F04%2Fjfreechart-create_piechart%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/05/31/10381940.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">JFreeChart 生成饼状图</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="在Dom4j中使用xpath解析xml" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F10%2Fdom4j_xpath_for_xml%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">在Dom4j中使用xpath解析xml</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Log4j" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F11%2Fabout-log4j%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Log4j</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="JSON-RPC-Java" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjson-rpc-java%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fcreate_project_with_maven%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">JSON-RPC-Java</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>By the time  your rss reader get this post here is <strong> 2 </strong>comments ,Welcome you come to leave your opinion !]]></content:encoded>
			<wfw:commentRss>http://www.javachen.com/2010/03/create_project_with_maven/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.javachen.com/tag/maven/feed/ ) in 16.40921 seconds, on Feb 6th, 2012 at 2:35 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 6th, 2012 at 3:35 am UTC -->
