<?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>Marshal&#039;s Blog &#187; build</title>
	<atom:link href="http://marshal.easymorse.com/archives/tag/build/feed" rel="self" type="application/rss+xml" />
	<link>http://marshal.easymorse.com</link>
	<description>It&#039;s swap of marshal&#039;s memory.</description>
	<lastBuildDate>Mon, 30 Jan 2012 07:03:45 +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>Maven pom文件常用配置小结</title>
		<link>http://marshal.easymorse.com/archives/511?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=maven-pom%25e6%2596%2587%25e4%25bb%25b6%25e5%25b0%258f%25e7%25bb%2593</link>
		<comments>http://marshal.easymorse.com/archives/511#comments</comments>
		<pubDate>Sun, 26 Mar 2006 15:02:17 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/511</guid>
		<description><![CDATA[什么是POM Project Object Model，项目对象模型。通过xml格式保存的pom.xml文件。作用类似ant的build.xml文件，功能更强大。该文件用于管理：源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。 一个完整的pom.xml文件，放置在项目的根目录下。 &#60;project xmlns=&#34;http://maven.apache.org/POM/4.0.0&#34; &#160; xmlns:xsi=&#34;http://www.w3.org/2001/XMLSchema-instance&#34; &#160; xsi:schemaLocation=&#34;http://maven.apache.org/POM/4.0.0 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; http://maven.apache.org/maven-v4_0_0.xsd&#34;&#62; &#160; &#60;modelVersion&#62;4.0.0&#60;/modelVersion&#62; &#160; &#60;!&#8211; The Basics &#8211;&#62; &#160; &#60;groupId&#62;&#8230;&#60;/groupId&#62; &#160; &#60;artifactId&#62;&#8230;&#60;/artifactId&#62; &#160; &#60;version&#62;&#8230;&#60;/version&#62; &#160; &#60;packaging&#62;&#8230;&#60;/packaging&#62; &#160; &#60;dependencies&#62;&#8230;&#60;/dependencies&#62; &#160; &#60;parent&#62;&#8230;&#60;/parent&#62; &#160; &#60;dependencyManagement&#62;&#8230;&#60;/dependencyManagement&#62; &#160; &#60;modules&#62;&#8230;&#60;/modules&#62; &#160; &#60;properties&#62;&#8230;&#60;/properties&#62; &#160; &#60;!&#8211; Build Settings &#8211;&#62; &#160; &#60;build&#62;&#8230;&#60;/build&#62; &#160; &#60;reporting&#62;&#8230;&#60;/reporting&#62; &#160; &#60;!&#8211; More Project Information &#8211;&#62; &#160; &#60;name&#62;&#8230;&#60;/name&#62; [...]]]></description>
			<content:encoded><![CDATA[<h4>什么是POM</h4>
<p>Project Object Model，项目对象模型。通过xml格式保存的pom.xml文件。作用类似ant的build.xml文件，功能更强大。该文件用于管理：源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。</p>
<p> <span id="more-511"></span>
<p>一个完整的pom.xml文件，放置在项目的根目录下。</p>
<blockquote><p>&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;     <br />&#160; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;      <br />&#160; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;      <br />&#160; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;      <br />&#160; &lt;!&#8211; The Basics &#8211;&gt;      <br />&#160; &lt;groupId&gt;&#8230;&lt;/groupId&gt;      <br />&#160; &lt;artifactId&gt;&#8230;&lt;/artifactId&gt;      <br />&#160; &lt;version&gt;&#8230;&lt;/version&gt;      <br />&#160; &lt;packaging&gt;&#8230;&lt;/packaging&gt;      <br />&#160; &lt;dependencies&gt;&#8230;&lt;/dependencies&gt;      <br />&#160; &lt;parent&gt;&#8230;&lt;/parent&gt;      <br />&#160; &lt;dependencyManagement&gt;&#8230;&lt;/dependencyManagement&gt;      <br />&#160; &lt;modules&gt;&#8230;&lt;/modules&gt;      <br />&#160; &lt;properties&gt;&#8230;&lt;/properties&gt;      <br />&#160; &lt;!&#8211; Build Settings &#8211;&gt;      <br />&#160; &lt;build&gt;&#8230;&lt;/build&gt;      <br />&#160; &lt;reporting&gt;&#8230;&lt;/reporting&gt;      <br />&#160; &lt;!&#8211; More Project Information &#8211;&gt;      <br />&#160; &lt;name&gt;&#8230;&lt;/name&gt;      <br />&#160; &lt;description&gt;&#8230;&lt;/description&gt;      <br />&#160; &lt;url&gt;&#8230;&lt;/url&gt;      <br />&#160; &lt;inceptionYear&gt;&#8230;&lt;/inceptionYear&gt;      <br />&#160; &lt;licenses&gt;&#8230;&lt;/licenses&gt;      <br />&#160; &lt;organization&gt;&#8230;&lt;/organization&gt;      <br />&#160; &lt;developers&gt;&#8230;&lt;/developers&gt;      <br />&#160; &lt;contributors&gt;&#8230;&lt;/contributors&gt;      <br />&#160; &lt;!&#8211; Environment Settings &#8211;&gt;      <br />&#160; &lt;issueManagement&gt;&#8230;&lt;/issueManagement&gt;      <br />&#160; &lt;ciManagement&gt;&#8230;&lt;/ciManagement&gt;      <br />&#160; &lt;mailingLists&gt;&#8230;&lt;/mailingLists&gt;      <br />&#160; &lt;scm&gt;&#8230;&lt;/scm&gt;      <br />&#160; &lt;prerequisites&gt;&#8230;&lt;/prerequisites&gt;      <br />&#160; &lt;repositories&gt;&#8230;&lt;/repositories&gt;      <br />&#160; &lt;pluginRepositories&gt;&#8230;&lt;/pluginRepositories&gt;      <br />&#160; &lt;distributionManagement&gt;&#8230;&lt;/distributionManagement&gt;      <br />&#160; &lt;profiles&gt;&#8230;&lt;/profiles&gt;      <br />&lt;/project&gt;</p>
</blockquote>
<h4>基本设置</h4>
<h5>maven的协作相关属性</h5>
<blockquote><p>&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;     <br />&#160; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;      <br />&#160; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;      <br />&#160; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;      <br />&#160; &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;      <br />&#160; &lt;artifactId&gt;my-project&lt;/artifactId&gt;      <br />&#160; &lt;version&gt;1.0&lt;/version&gt;      <br />&#160; &lt;packaging&gt;war&lt;/packaging&gt;      <br />&lt;/project&gt;</p>
</blockquote>
<ol>
<li>groupId : 组织标识，例如：org.codehaus.mojo，在M2_REPO目录下，将是: org/codehaus/mojo目录。</li>
<li>artifactId : 项目名称，例如：my-project，在M2_REPO目录下，将是：org/codehaus/mojo/my-project目录。</li>
<li>version : 版本号，例如：1.0，在M2_REPO目录下，将是：org/codehaus/mojo/my-project/1.0目录。</li>
<li>packaging : 打包的格式，可以为：pom , jar , maven-plugin , ejb , war , ear , rar , par</li>
</ol>
<h5>POM之间的关系</h5>
<p>主要用于POM文件的复用。</p>
<p><strong>依赖关系：</strong>依赖关系列表（dependency list）是POM的重要部分。</p>
<blockquote><p>&#160; &lt;dependencies&gt;     <br />&#160;&#160;&#160; &lt;dependency&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;groupId&gt;junit&lt;/groupId&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;junit&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;version&gt;4.0&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;scope&gt;test&lt;/scope&gt;      <br />&#160;&#160;&#160; &lt;/dependency&gt;      <br />&#160;&#160;&#160; &#8230;      <br />&#160; &lt;/dependencies&gt;</p>
</blockquote>
<ol>
<li>groupId , artifactId , version :</li>
<li>scope : compile(default),provided,runtime,test,system</li>
<li>exclusions</li>
</ol>
<p><strong>继承关系：</strong>继承其他pom.xml配置的机制。</p>
<p>比如父pom.xml：</p>
<blockquote><p>&lt;project&gt;     <br />&#160; [...]      <br />&#160; &lt;dependencies&gt;      <br />&#160;&#160;&#160; &lt;dependency&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;groupId&gt;junit&lt;/groupId&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;junit&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;version&gt;4.4&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;scope&gt;test&lt;/scope&gt;      <br />&#160;&#160;&#160; &lt;/dependency&gt;      <br />&#160; &lt;/dependencies&gt;      <br />&#160; [...]      <br />&lt;/project&gt;</p>
</blockquote>
<p>在子pom.xml文件继承它的依赖（还可以继承其他的：developers and contributors、plugin lists、reports lists、plugin executions with matching ids、plugin configuration）：</p>
<blockquote><p>[...]     <br />&lt;parent&gt;      <br />&lt;groupId&gt;com.devzuz.mvnbook.proficio&lt;/groupId&gt;      <br />&#160; &lt;artifactId&gt;proficio&lt;/artifactId&gt;      <br />&#160; &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;      <br />&lt;/parent&gt;      <br />[...]</p>
</blockquote>
<p>在这种机制下，maven还提供了一个类似java.lang.Object的顶级父pom.xml文件：</p>
<blockquote><p>&lt;project&gt;     <br />&#160; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;      <br />&#160; &lt;name&gt;Maven Default Project&lt;/name&gt;      <br />&#160; &lt;repositories&gt;      <br />&#160;&#160;&#160; &lt;repository&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;id&gt;central&lt;/id&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;name&gt;Maven Repository Switchboard&lt;/name&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;layout&gt;default&lt;/layout&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;url&gt;http://repo1.maven.org/maven2&lt;/url&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;snapshots&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;enabled&gt;false&lt;/enabled&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/snapshots&gt;      <br />&#160;&#160;&#160; &lt;/repository&gt;      <br />&#160; &lt;/repositories&gt;      <br />&#160; &lt;pluginRepositories&gt;      <br />&#160;&#160;&#160; &lt;pluginRepository&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;id&gt;central&lt;/id&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;name&gt;Maven Plugin Repository&lt;/name&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;url&gt;http://repo1.maven.org/maven2&lt;/url&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;layout&gt;default&lt;/layout&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;snapshots&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;enabled&gt;false&lt;/enabled&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/snapshots&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;releases&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;updatePolicy&gt;never&lt;/updatePolicy&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/releases&gt;      <br />&#160;&#160;&#160; &lt;/pluginRepository&gt;      <br />&#160; &lt;/pluginRepositories&gt;      <br />&#160; &lt;build&gt;      <br />&#160;&#160;&#160; &lt;directory&gt;target&lt;/directory&gt;      <br />&#160;&#160;&#160; &lt;outputDirectory&gt;target/classes&lt;/outputDirectory&gt;      <br />&#160;&#160;&#160; &lt;finalName&gt;${project.artifactId}-${project.version}&lt;/finalName&gt;      <br />&#160;&#160;&#160; &lt;testOutputDirectory&gt;target/test-classes&lt;/testOutputDirectory&gt;      <br />&#160;&#160;&#160; &lt;sourceDirectory&gt;src/main/java&lt;/sourceDirectory&gt;      <br />&#160;&#160;&#160; &lt;scriptSourceDirectory&gt;src/main/scripts&lt;/scriptSourceDirectory&gt;      <br />&#160;&#160;&#160; &lt;testSourceDirectory&gt;src/test/java&lt;/testSourceDirectory&gt;      <br />&#160;&#160;&#160; &lt;resources&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;resource&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;directory&gt;src/main/resources&lt;/directory&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/resource&gt;      <br />&#160;&#160;&#160; &lt;/resources&gt;      <br />&#160;&#160;&#160; &lt;testResources&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;testResource&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;directory&gt;src/test/resources&lt;/directory&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/testResource&gt;      <br />&#160;&#160;&#160; &lt;/testResources&gt;      <br />&#160;&#160;&#160; &lt;pluginManagement&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugins&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-antrun-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;1.1&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.2-beta-2&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-clean-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.2&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.0.2&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.0&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-deploy-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.3&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-ear-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.3.1&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-ejb-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.1&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-install-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.2&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.2&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.4&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-plugin-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.4.1&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-rar-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.2&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-release-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.0-beta-7&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-resources-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.2&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-site-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.0-beta-6&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.0.4&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.4.2&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.1-alpha-1&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugins&gt;      <br />&#160;&#160;&#160;&#160; &lt;/pluginManagement&gt;      <br />&#160; &lt;/build&gt;      <br />&#160; &lt;reporting&gt;      <br />&#160;&#160;&#160; &lt;outputDirectory&gt;target/site&lt;/outputDirectory&gt;      <br />&#160; &lt;/reporting&gt;      <br />&#160; &lt;profiles&gt;      <br />&#160;&#160;&#160; &lt;profile&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;id&gt;release-profile&lt;/id&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;activation&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;property&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;name&gt;performRelease&lt;/name&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;value&gt;true&lt;/value&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/property&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/activation&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;build&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugins&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;inherited&gt;true&lt;/inherited&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;executions&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;execution&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;id&gt;attach-sources&lt;/id&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;goals&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;goal&gt;jar&lt;/goal&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/goals&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/execution&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/executions&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;inherited&gt;true&lt;/inherited&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;executions&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;execution&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;id&gt;attach-javadocs&lt;/id&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;goals&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;goal&gt;jar&lt;/goal&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/goals&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/execution&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/executions&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;inherited&gt;true&lt;/inherited&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-deploy-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;configuration&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;updateReleaseInfo&gt;true&lt;/updateReleaseInfo&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/configuration&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/plugins&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/build&gt;      <br />&#160;&#160;&#160; &lt;/profile&gt;      <br />&#160; &lt;/profiles&gt;      <br />&lt;/project&gt;</p>
</blockquote>
<p>可以通过下面命令查看当前pom.xml受到超pom.xml文件的影响：</p>
<blockquote><p>mvn help:effective-pom</p>
</blockquote>
<p><strong>聚合关系：</strong>用于将多个maven项目聚合为一个大的项目。</p>
<blockquote><p>&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;     <br />&#160; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;      <br />&#160; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;      <br />&#160; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;      <br />&#160; &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;      <br />&#160; &lt;artifactId&gt;my-parent&lt;/artifactId&gt;      <br />&#160; &lt;version&gt;2.0&lt;/version&gt;      <br />&#160; &lt;modules&gt;      <br />&#160;&#160;&#160; &lt;module&gt;my-project&lt;module&gt;      <br />&#160; &lt;/modules&gt;      <br />&lt;/project&gt;</p>
</blockquote>
<h5>属性</h5>
<p>maven的属性，是值的占位符，类似EL，类似ant的属性，比如${X}，可用于pom文件任何赋值的位置。有以下分类：</p>
<ol>
<li>env.X：操作系统环境变量，比如${env.PATH}</li>
<li>project.x：pom文件中的属性，比如：&lt;project&gt;&lt;version&gt;1.0&lt;/version&gt;&lt;/project&gt;，引用方式：${project.version}</li>
<li>settings.x：settings.xml文件中的属性，比如：&lt;settings&gt;&lt;offline&gt;false&lt;/offline&gt;&lt;/settings&gt;，引用方式：${settings.offline}</li>
<li>Java System Properties：java.lang.System.getProperties()中的属性，比如java.home，引用方式：${java.home}</li>
<li>自定义：在pom文件中可以：&lt;properties&gt;&lt;installDir&gt;c:/apps/cargo-installs&lt;/installDir&gt;&lt;/properties&gt;，引用方式：${installDir}</li>
</ol>
<h4>构建设置</h4>
<p>构建有两种build标签：</p>
<blockquote><p>&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;     <br />&#160; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;      <br />&#160; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;      <br />&#160; &#8230;      <br />&#160; &lt;!&#8211; &quot;Project Build&quot; contains more elements than just the BaseBuild set &#8211;&gt;      <br />&#160; &lt;build&gt;&#8230;&lt;/build&gt;      <br />&#160; &lt;profiles&gt;      <br />&#160;&#160;&#160; &lt;profile&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;!&#8211; &quot;Profile Build&quot; contains a subset of &quot;Project Build&quot;s elements &#8211;&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;build&gt;&#8230;&lt;/build&gt;      <br />&#160;&#160;&#160; &lt;/profile&gt;      <br />&#160; &lt;/profiles&gt;      <br />&lt;/project&gt;</p>
</blockquote>
<p>build中的主要标签：Resources和Plugins。</p>
<p>Resources：用于排除或包含某些资源文件</p>
<blockquote><p>&#160;&#160;&#160; &lt;resources&gt;     <br />&#160;&#160;&#160;&#160;&#160; &lt;resource&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;targetPath&gt;META-INF/plexus&lt;/targetPath&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;filtering&gt;false&lt;/filtering&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;directory&gt;${basedir}/src/main/plexus&lt;/directory&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;includes&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;include&gt;configuration.xml&lt;/include&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/includes&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;excludes&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;exclude&gt;**/*.properties&lt;/exclude&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/excludes&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/resource&gt;      <br />&#160;&#160;&#160; &lt;/resources&gt;</p>
</blockquote>
<p>Plugins：设置构建的插件</p>
<blockquote><p>&#160; &lt;build&gt;     <br />&#160;&#160;&#160; &#8230;      <br />&#160;&#160;&#160; &lt;plugins&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;plugin&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;version&gt;2.0&lt;/version&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;extensions&gt;false&lt;/extensions&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;inherited&gt;true&lt;/inherited&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;configuration&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;classifier&gt;test&lt;/classifier&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/configuration&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;dependencies&gt;&#8230;&lt;/dependencies&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;executions&gt;&#8230;&lt;/executions&gt;      <br />&#160;&#160;&#160;&#160;&#160; &lt;/plugin&gt;</p>
</blockquote>
<p>&#160;</p>
<p><font color="#777777">&#160;</font></p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/511/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven编写web项目</title>
		<link>http://marshal.easymorse.com/archives/501?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=maven%25e7%25bc%2596%25e5%2586%2599web%25e9%25a1%25b9%25e7%259b%25ae</link>
		<comments>http://marshal.easymorse.com/archives/501#comments</comments>
		<pubDate>Fri, 10 Mar 2006 14:39:57 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/501</guid>
		<description><![CDATA[通过maven在命令行下创建java web项目。 创建项目 在命令行输入，这一步和创建java项目类似： mvn archetype:generate Choose a number: 回车即可，也就是选择18，这里和java普通项目不一样 Define value for groupId: 输入组织id，比如easymorse.com Define value for artifactId：输入项目名称，比如helloworld Define value for version: 输入版本号，可以直接回车，默认是1.0-SNAPSHOT Define value for package: java的包名，比如com.easymorse 然后回车表示确认上述输入即可。 运行maven任务 命令行进入创建项目的目录。 项目打包命令 mvn package 这一步和java项目类似，不过生成的是war包，在target目录下。其他任务和java项目类似。 将maven项目转化为eclipse项目 mvn -Dwtpversion=1.0 eclipse:eclipse 这样生成wtp插件的web项目。 打开eclipse，菜单选择：file&#62;import&#62;general&#62;existing projects into workspace，在对话框中选中目录，导入即可。 另外，需要在eclipse里创建一个classpath变量，名称为：M2_REPO，值为系统用户下.m2/repository目录。]]></description>
			<content:encoded><![CDATA[<p>通过maven在命令行下创建java web项目。</p>
<p> <span id="more-501"></span><br />
<h4>创建项目</h4>
<p>在命令行输入，这一步和创建java项目类似：</p>
<blockquote><p>mvn archetype:generate</p>
</blockquote>
<p>Choose a number: 回车即可，也就是选择18，<strong>这里和java普通项目不一样</strong>    <br />Define value for groupId: 输入组织id，比如easymorse.com    <br />Define value for artifactId：输入项目名称，比如helloworld    <br />Define value for version: 输入版本号，可以直接回车，默认是1.0-SNAPSHOT    <br />Define value for package: java的包名，比如com.easymorse    <br />然后回车表示确认上述输入即可。</p>
<h4>运行maven任务</h4>
<p>命令行进入创建项目的目录。</p>
<h5>项目打包命令</h5>
<blockquote><p>mvn package</p>
</blockquote>
<p>这一步和java项目类似，不过生成的是war包，在target目录下。其他任务和java项目类似。</p>
<h5>将maven项目转化为eclipse项目</h5>
<blockquote><p>mvn -Dwtpversion=1.0 eclipse:eclipse</p>
</blockquote>
<p>这样生成wtp插件的web项目。   <br />打开eclipse，菜单选择：file&gt;import&gt;general&gt;existing projects into workspace，在对话框中选中目录，导入即可。    <br />另外，需要在eclipse里创建一个classpath变量，名称为：M2_REPO，值为系统用户下.m2/repository目录。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/501/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>通过Maven编写java项目</title>
		<link>http://marshal.easymorse.com/archives/498?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e9%2580%259a%25e8%25bf%2587maven%25e7%25bc%2596%25e5%2586%2599java%25e9%25a1%25b9%25e7%259b%25ae</link>
		<comments>http://marshal.easymorse.com/archives/498#comments</comments>
		<pubDate>Wed, 08 Mar 2006 14:27:21 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/498</guid>
		<description><![CDATA[通过maven在命令行下创建普通java项目，也就是main方法执行的项目或者jar文件的类库。 创建项目 在命令行执行命令进行交互式的创建项目： mvn archetype:generate Choose a number: 回车即可，也就是选择15。 Define value for groupId: 输入组织id，比如easymorse.com Define value for artifactId：输入项目名称，比如helloworld Define value for version: 输入版本号，可以直接回车，默认是1.0-SNAPSHOT Define value for package: java的包名，比如com.easymorse 然后回车表示确认上述输入即可。 helloworld目录（Define value for artifactId输入的项目名称）下生成的文件和目录： 项目构建文件: pom.xml 代码框架: src\main\java\com\easymorse\App.java 测试代码: src\test\java\com\easymorse\AppTest.java 运行maven任务 命令行进入helloworld目录Define value for artifactId输入的项目名称）。 项目打包命令 mvn package 命令生成了什么？ target目录 编译了代码 编译了测试代码 使用junit测试并生成的报告 生成代码的jar文件 运行打包的jar文件 java [...]]]></description>
			<content:encoded><![CDATA[<p>通过maven在命令行下创建普通java项目，也就是main方法执行的项目或者jar文件的类库。</p>
<p> <span id="more-498"></span><br />
<h4>创建项目</h4>
<p>在命令行执行命令进行交互式的创建项目：</p>
<blockquote><p>mvn archetype:generate</p>
</blockquote>
<p>Choose a number: 回车即可，也就是选择15。    <br />Define value for groupId: 输入组织id，比如<i>easymorse.com</i>     <br />Define value for artifactId：输入项目名称，比如<i>helloworld</i>     <br />Define value for version: 输入版本号，可以直接回车，默认是<i>1.0-SNAPSHOT</i>     <br />Define value for package: java的包名，比如<i>com.easymorse</i>     <br />然后回车表示确认上述输入即可。</p>
<p><i>helloworld</i>目录（Define value for artifactId输入的项目名称）下生成的文件和目录：</p>
<ul>
<li>项目构建文件: pom.xml </li>
<li>代码框架: src\main\java\com\easymorse\App.java </li>
<li>测试代码: src\test\java\com\easymorse\AppTest.java </li>
</ul>
<h4>运行maven任务</h4>
<p>命令行进入helloworld目录Define value for artifactId输入的项目名称）。</p>
<h5>项目打包命令</h5>
<blockquote><p>mvn package</p>
</blockquote>
<p>命令生成了什么？</p>
<ul>
<li>target目录 </li>
<li>编译了代码 </li>
<li>编译了测试代码 </li>
<li>使用junit测试并生成的报告 </li>
<li>生成代码的jar文件 </li>
</ul>
<h5>运行打包的jar文件</h5>
<blockquote><p>java -cp&#160; target\helloworld-1.0-SNAPSHOT.jar      <br />com.easymorse.App</p>
</blockquote>
<h5>编译源程序</h5>
<blockquote><p>mvn compile</p>
</blockquote>
<h5>编译并测试</h5>
<blockquote><p>mvn test</p>
</blockquote>
<h5>清空生成的文件</h5>
<blockquote><p>mvn clean</p>
</blockquote>
<h5>maven项目转化为eclipse项目</h5>
<blockquote><p>mvn eclipse:eclipse</p>
</blockquote>
<p>打开eclipse，菜单选择：file&gt;import&gt;general&gt;existing projects into workspace，在对话框中选中目录，导入即可。如果要清除有关eclipse项目的配置信息：</p>
<blockquote><p>mvn eclipse:clean</p>
</blockquote>
<p><font color="#777777">&#160;</font></p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/498/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven的安装</title>
		<link>http://marshal.easymorse.com/archives/497?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=maven%25e7%259a%2584%25e5%25ae%2589%25e8%25a3%2585</link>
		<comments>http://marshal.easymorse.com/archives/497#comments</comments>
		<pubDate>Tue, 07 Mar 2006 14:24:46 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/497</guid>
		<description><![CDATA[从官方网站下载最新的Maven分发包，见： http://maven.apache.org/download.html 解压缩到本地。配置maven, 将maven/bin目录设置到windows环境变量Path中。检查maven是否安装成功, 在命令行中执行命令测试是否安装成功： mvn -version]]></description>
			<content:encoded><![CDATA[<p>从官方网站下载最新的Maven分发包，见：</p>
<blockquote><p><a title="http://maven.apache.org/download.html" href="http://maven.apache.org/download.html">http://maven.apache.org/download.html</a></p>
</blockquote>
<p> <span id="more-497"></span>
<p>解压缩到本地。配置maven, 将maven/bin目录设置到windows环境变量Path中。检查maven是否安装成功, 在命令行中执行命令测试是否安装成功：</p>
<blockquote><p>mvn -version</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/497/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Maven和软件构建</title>
		<link>http://marshal.easymorse.com/archives/510?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=maven%25e5%2592%258c%25e8%25bd%25af%25e4%25bb%25b6%25e6%259e%2584%25e5%25bb%25ba</link>
		<comments>http://marshal.easymorse.com/archives/510#comments</comments>
		<pubDate>Fri, 24 Feb 2006 15:00:24 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/510</guid>
		<description><![CDATA[什么是软件构建 从源代码和文档创建交付使用的产品的过程。 软件构建的方式 手工构建，比如java，通过javac编译代码，再手工复制部署到指定位置，手工执行javadoc生成javadoc文档等等； 通过IDE工具，比如eclipse自动编译，通过图形界面导出软件制品（比如jar，war）等等； 通过自动化构建工具，maven就是一种自动构建工具。 构建工具的作用 如果只有一个开发人员，使用IDE工具已经足够。当多人参与项目编码时，为提高集成和构建的效率，需要使用构建工具。 IDE和构建工具的区别 IDE是通过多次交互(比如点击按钮)完成构建过程，自动构建工具是批处理方式自动完成构建过程； IDE的用户是专业的开发人员，构建工具的用户可以是普通用户或者网管等； IDE工具依赖图形界面环境，构建工具只使用命令行界面。 Maven和Ant的区别 不需要写复杂的处理脚本； 声明式的类库依赖管理。 Maven的基本功能小结 构建：比如生成class、jar、war或者ear文件 生成文档：比如生成javadoc、网站文档 生成报告：比如junit测试报告 生成依赖类库：生成文档，说明项目多其他软件的依赖 有关SCM：SCM（Software Configuration Management），软件配置管理，比如版本控制，比如bug管理等等 发布：生成供发布的分发包，比如生成Struts2的分发包，供提交给用户使用 部署：比如，web应用程序，自动部署到指定的服务器上 完整的maven示例 http://code.google.com/p/simplelife/wiki/SimpleLife_Product]]></description>
			<content:encoded><![CDATA[<h4><strong>什么是软件构建</strong></h4>
<blockquote><p>从源代码和文档创建交付使用的产品的过程。</p>
</blockquote>
<p> <span id="more-510"></span><br />
<h4>软件构建的方式</h4>
<ol>
<li>手工构建，比如java，通过javac编译代码，再手工复制部署到指定位置，手工执行javadoc生成javadoc文档等等；</li>
<li>通过IDE工具，比如eclipse自动编译，通过图形界面导出软件制品（比如jar，war）等等；</li>
<li>通过自动化构建工具，maven就是一种自动构建工具。</li>
</ol>
<h4>构建工具的作用</h4>
<p>如果只有一个开发人员，使用IDE工具已经足够。当多人参与项目编码时，为提高集成和构建的效率，需要使用构建工具。</p>
<h4>IDE和构建工具的区别</h4>
<ul>
<li>IDE是通过多次交互(比如点击按钮)完成构建过程，自动构建工具是批处理方式自动完成构建过程；</li>
<li>IDE的用户是专业的开发人员，构建工具的用户可以是普通用户或者网管等；</li>
<li>IDE工具依赖图形界面环境，构建工具只使用命令行界面。</li>
</ul>
<h4>Maven和Ant的区别</h4>
<ul>
<li>不需要写复杂的处理脚本；</li>
<li>声明式的类库依赖管理。</li>
</ul>
<h4>Maven的基本功能小结</h4>
<ul>
<li>构建：比如生成class、jar、war或者ear文件</li>
<li>生成文档：比如生成javadoc、网站文档</li>
<li>生成报告：比如junit测试报告</li>
<li>生成依赖类库：生成文档，说明项目多其他软件的依赖</li>
<li>有关SCM：SCM（Software Configuration Management），软件配置管理，比如版本控制，比如bug管理等等</li>
<li>发布：生成供发布的分发包，比如生成Struts2的分发包，供提交给用户使用</li>
<li>部署：比如，web应用程序，自动部署到指定的服务器上</li>
</ul>
<h4>完整的maven示例</h4>
<blockquote><p><a title="http://code.google.com/p/simplelife/wiki/SimpleLife_Product" href="http://code.google.com/p/simplelife/wiki/SimpleLife_Product">http://code.google.com/p/simplelife/wiki/SimpleLife_Product</a></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/510/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ant与web开发</title>
		<link>http://marshal.easymorse.com/archives/466?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ant%25e4%25b8%258eweb%25e5%25bc%2580%25e5%258f%2591</link>
		<comments>http://marshal.easymorse.com/archives/466#comments</comments>
		<pubDate>Sun, 23 Jan 2005 04:57:24 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/blog/archives/466</guid>
		<description><![CDATA[示例参见： http://code.google.com/p/simplelife/wiki/SimpleLife_Sample_Ant Ant编译和库的依赖 在项目中创建lib目录，放置项目需要的jar文件。并在ant文件中引用该目录下jar文件到classpath。 build文件 build文件的属性文件 buid.xml文件不需要修改，所有可变动的内容放置在build.properties文件中，供build.xml文件引用。 project.name=user_manager build.path=build build.path.class=${build.path}/classes lib.path=lib dist.path=dist src.path=src doc.path=${dist.path}/doc javadoc.path=${doc.path}/api javadoc.title=User Management API web.path=WebContent deploy.url=http://localhost:8080/manager deploy.userName=marshal deploy.password=password ant项目导入Eclipse 创建Eclipse Dynamic Web Project。复制lib，src和webcontent目录中的文件，build.xml，build.properties。选中lib目录下需要的jar文件，鼠标右键，add to build path。 在项目属性中，J2EE Module Dependences加入jar文件。通过Eclipse中集成的ant功能构建。]]></description>
			<content:encoded><![CDATA[<p>示例参见：</p>
<blockquote><p><a href="http://code.google.com/p/simplelife/wiki/SimpleLife_Sample_Ant">http://code.google.com/p/simplelife/wiki/SimpleLife_Sample_Ant</a></p>
</blockquote>
<h4>Ant编译和库的依赖</h4>
<p>在项目中创建lib目录，放置项目需要的jar文件。并在ant文件中引用该目录下jar文件到classpath。</p>
<p><span id="more-466"></span></p>
<h4>build文件</h4>
<pre lang="xml">
<project name="my.project" default="archive">
<property file="build.properties" />
<path id="run.lib">
                <fileset dir="${lib.path}">
                        <include name="*.jar" />
                </fileset>
        </path>
<path id="compile.classpath">
                <fileset dir="${build.path.class}" />
        </path>
        <taskdef name="deploy"
                 classname="org.apache.catalina.ant.DeployTask"
                 classpathref="run.lib" />
        <taskdef name="undeploy"
                 classname="org.apache.catalina.ant.UndeployTask"
                 classpathref="run.lib" />
        <tstamp>
<format property="buildDateFormat"
                  pattern="yyMMdd" />
        </tstamp>
        <target name="init" description="初始化工作">
                <mkdir dir="${build.path.class}" />
                <mkdir dir="${dist.path}" />
        </target>
        <target name="compile" depends="init"
                description="编译java程序">
                <javac srcdir="${src.path}"
                       destdir="${build.path.class}"
                       debug="true" encoding="UTF-8" />
        </target>
        <target name="archive" depends="compile"
                description="打包java程序">
                <jar destfile="${dist.path}/${project.name}-${buildDateFormat}.jar"
                     basedir="${build.path.class}" />
        </target>
        <target name="javadocs" depends="compile"
                description="生成javadoc">
                <javadoc access="protected" sourcepath="${src.path}"
                         destdir="${javadoc.path}" use="true"
                         windowtitle="${javadoc.title}"
                         encoding="UTF-8" charset="UTF-8"
                         overview="${src.path}/overview.html">
                </javadoc>
        </target>
        <target name="war" depends="compile"
                description="生成war文件">
                <war destfile="${dist.path}/${project.name}.war"
                     webxml="${web.path}/WEB-INF/web.xml">
                        <fileset dir="${web.path}">
                                <include name="*.jsp" />
                        </fileset>
                        <classes dir="${build.path.class}" />
                </war>
        </target>
        <target name="undeploy" description="卸载web项目">
                <undeploy url="${deploy.url}"
                          username="${deploy.userName}"
                          password="${deploy.password}"
                          path="/${project.name}"
                          failonerror="false" />
        </target>
        <target name="deploy" depends="war,undeploy"
                description="部署web项目">
                <deploy url="${deploy.url}"
                    username="${deploy.userName}"
                    password="${deploy.password}"
                    path="/${project.name}"
                    war="${dist.path}/${project.name}.war" />
        </target>
        <target name="clean" depends="init"
                 description="清理中间数据">
                <delete dir="${build.path}" />
                <delete dir="${dist.path}" />
        </target>
</project>
</pre>
<h4>build文件的属性文件</h4>
<p>buid.xml文件不需要修改，所有可变动的内容放置在build.properties文件中，供build.xml文件引用。</p>
<blockquote>
<p><font size="2">project.name=user_manager<br />
      <br />build.path=build</p>
<p>build.path.class=${build.path}/classes</p>
<p>lib.path=lib</p>
<p>dist.path=dist</p>
<p>src.path=src</p>
<p>doc.path=${dist.path}/doc</p>
<p>javadoc.path=${doc.path}/api</p>
<p>javadoc.title=User Management API</p>
<p>web.path=WebContent</p>
<p>deploy.url=</font><a href="http://localhost:8080/manager"><font size="2">http://localhost:8080/manager</font></a></p>
<p><font size="2">deploy.userName=marshal<br />
      <br />deploy.password=password</font></p>
</blockquote>
<h4>ant项目导入Eclipse</h4>
<p>创建Eclipse Dynamic Web Project。复制lib，src和webcontent目录中的文件，build.xml，build.properties。选中lib目录下需要的jar文件，鼠标右键，add to build path。</p>
<p>在项目属性中，J2EE Module Dependences加入jar文件。通过Eclipse中集成的ant功能构建。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/466/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最基本的ant构建过程</title>
		<link>http://marshal.easymorse.com/archives/445?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e6%259c%2580%25e5%259f%25ba%25e6%259c%25ac%25e7%259a%2584ant%25e6%259e%2584%25e5%25bb%25ba%25e8%25bf%2587%25e7%25a8%258b</link>
		<comments>http://marshal.easymorse.com/archives/445#comments</comments>
		<pubDate>Sat, 22 Jan 2005 03:38:16 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/blog/archives/445</guid>
		<description><![CDATA[以下总结了大多数ant构建过程都会用到的通用功能。 准备工作 解压缩Ant分发包.设置JAVA_HOME变量.在Windwos系统环境中的Path变量中增加, {ant_home}/bin.打开命令行窗口（若能看到版本信息说明安装成功）: ant -version 创建项目目录和Java文件 创建一个任意的项目目录.在该目录下创建src目录.在src目录下创建test目录, 并在该目录下编写一个最简单的java程序: package test; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } 创建构建文件 构建文件一般被称作build文件.在刚才建立的项目根目录下,创建build.xml文件: &#60;?xml version="1.0" encoding="UTF-8"?&#62; &#60;project name="firstbuild" default="compile"&#62; &#60;target name="compile"&#62; &#60;javac srcdir="src" /&#62; &#60;echo&#62;构建成功!&#60;/echo&#62; &#60;/target&#62; &#60;/project&#62; 运行构建脚本 项目根目录下, 运行: ant 在运行中看到更详细信息的方法: ant -verbose 增加构建的功能 上面的构建只完成一个工作, 将java文件编译为class文件.存在的不足: 源文件和编译后的文件放在一起, 比较混乱.源文件和编译文件存放在不同的目录下;编译后的class文件打包为jar文件.一般的目录约定: 目录名称 功能 [...]]]></description>
			<content:encoded><![CDATA[<p>以下总结了大多数ant构建过程都会用到的通用功能。</p>
<h4>准备工作</h4>
<p>解压缩Ant分发包.设置JAVA_HOME变量.在Windwos系统环境中的Path变量中增加, <em>{ant_home}/bin</em>.打开命令行窗口（<em>若能看到版本信息说明安装成功</em>）:</p>
<blockquote><p>ant -version</p>
</blockquote>
<p> <span id="more-445"></span>
</p>
<h4>创建项目目录和Java文件</h4>
<p>创建一个任意的项目目录.在该目录下创建src目录.在src目录下创建test目录, 并在该目录下编写一个最简单的java程序:</p>
<blockquote><pre><span style="font-size: x-small"><font size="2">package test;

public class HelloWorld {
        public static void main(String[] args) {
                System.out.println("Hello World!");
        }
}</font></span></pre>
</blockquote>
<h4>创建构建文件</h4>
<p>构建文件一般被称作<em>build</em>文件.在刚才建立的项目根目录下,创建build.xml文件:</p>
<blockquote><pre><span style="font-size: x-small"><font size="2">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project name="firstbuild" default="compile"&gt;
        &lt;target name="compile"&gt;
                &lt;javac srcdir="src" /&gt;
                &lt;echo&gt;构建成功!&lt;/echo&gt;
        &lt;/target&gt;
&lt;/project&gt;</font></span></pre>
</blockquote>
<h4>运行构建脚本</h4>
<p>项目根目录下, 运行:</p>
<blockquote>
<p><span style="color: #808080">ant</span></p>
</blockquote>
<p>在运行中看到<em><strong>更详细信息</strong></em>的方法:</p>
<blockquote><pre><span style="font-size: x-small"><font size="2">ant -verbose</font></span></pre>
</blockquote>
<h4>增加构建的功能</h4>
<p>上面的构建只完成一个工作, 将java文件编译为class文件.<strong>存在的不足:</strong> 源文件和编译后的文件放在一起, 比较混乱.源文件和编译文件存放在不同的目录下;编译后的class文件打包为jar文件.一般的目录约定:</p>
<table cellspacing="0" cellpadding="2" width="445" border="0">
<tbody>
<tr>
<td valign="top" align="middle" width="134"><strong>目录名称</strong></td>
<td valign="top" align="middle" width="309"><strong>功能</strong></td>
</tr>
<tr>
<td valign="top" width="135">src</td>
<td valign="top" width="309">源文件</td>
</tr>
<tr>
<td valign="top" width="135">build</td>
<td valign="top" width="309">所有构建过程中产生的文件, 可以删除和重建</td>
</tr>
<tr>
<td valign="top" width="135">build/classes</td>
<td valign="top" width="309">构建中产生的类文件和相关文件</td>
</tr>
<tr>
<td valign="top" width="135">dist</td>
<td valign="top" width="309">分发包文件, 可以删除和重建</td>
</tr>
</tbody>
</table>
<h4>编写build文件</h4>
<pre lang="xml"></pre>
<h4>target的依赖关系</h4>
<p>如果循环依赖, ant会检测到并报错退出。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2008/10/targetdependencies.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="190" alt="target.dependencies" src="http://marshal.easymorse.com/wp-content/uploads/2008/10/targetdependencies-thumb.png" width="240" border="0"></a></p>
<h4>更多的ant功能</h4>
<h5>了解build中所有任务</h5>
<blockquote>
<p>ant -projecthelp</p>
</blockquote>
<h5>增量构建</h5>
<p>再次运行, 将编译改动过的class文件。</p>
<h5>一次运行多个target</h5>
<blockquote>
<p>ant compile archive</p>
</blockquote>
<h5>指定运行的构建文件</h5>
<blockquote>
<p>ant -buildfile build.xml compile</p>
</blockquote>
<h5>减少构建中信息输出</h5>
<blockquote>
<p>ant -quiet</p>
</blockquote>
<h4>运行程序</h4>
<p>可以通过命令行执行java程序：</p>
<blockquote>
<p>java -cp build/classes test.HelloWorld</p>
</blockquote>
<p>通过ant执行的配置：</p>
<pre lang="xml">
<target name="execute" depends="compile">
        <java classname="test.HelloWorld" classpath="build/classes" />
</target>
</pre>
<p>使用ant执行的好处:</p>
<ul>
<li>可以比较容易的将复杂参数加入程序
<li>易于设置classpath
<li>直接使用ant配置的JVM </li>
</ul>
<h4>完整的构建文件</h4>
<pre lang="xml">
<project name="my.project" default="archive">
<property file="build.properties" />
<path id="run.lib">
                <fileset dir="${lib.path}">
                        <include name="*.jar" />
                </fileset>
        </path>
<path id="compile.classpath">
                <fileset dir="${build.path.class}" />
        </path>
        <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="run.lib" />
        <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="run.lib" />
        <tstamp>
<format property="buildDateFormat" pattern="yyMMdd" />
        </tstamp>
        <target name="init" description="初始化工作">
                <mkdir dir="${build.path.class}" />
                <mkdir dir="${dist.path}" />
        </target>
        <target name="compile" depends="init" description="编译java程序">
                <javac srcdir="${src.path}" destdir="${build.path.class}" debug="true" encoding="UTF-8" />
        </target>
        <target name="archive" depends="compile" description="打包java程序">
                <jar destfile="${dist.path}/${project.name}-${buildDateFormat}.jar" basedir="${build.path.class}" />
        </target>
        <target name="javadocs" depends="compile" description="生成javadoc">
                <javadoc access="protected" sourcepath="${src.path}" destdir="${javadoc.path}" use="true" windowtitle="${javadoc.title}" encoding="UTF-8" charset="UTF-8" overview="${src.path}/overview.html">
                </javadoc>
        </target>
        <target name="war" depends="compile" description="生成war文件">
                <war destfile="${dist.path}/${project.name}.war" webxml="${web.path}/WEB-INF/web.xml">
                        <fileset dir="${web.path}">
                                <include name="*.jsp" />
                        </fileset>
                        <classes dir="${build.path.class}" />
                </war>
        </target>
        <target name="undeploy" description="卸载web项目">
                <undeploy url="${deploy.url}" username="${deploy.userName}" password="${deploy.password}" path="/${project.name}" failonerror="false" />
        </target>
        <target name="deploy" depends="war,undeploy" description="部署web项目">
                <deploy url="${deploy.url}" username="${deploy.userName}" password="${deploy.password}" path="/${project.name}" war="${dist.path}/${project.name}.war" />
        </target>
        <target name="clean" depends="init" description="清理中间数据">
                <delete dir="${build.path}" />
                <delete dir="${dist.path}" />
        </target>
</project>
</pre>
<h4>build配置文件的组成</h4>
<ul>
<li>一个build文件包含一个project标签(根标签);
<li>project标签中包含多个target标签
<li>一个target可能依赖其他target(可以多个)
<li>target包含多个task
<li>task实现构建的各个任务 </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/445/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

