﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-大漠驼铃-随笔分类-maven</title><link>http://www.blogjava.net/nkjava/category/37575.html</link><description>置身浩瀚的草原，方向最为重要，希望此blog能向大漠驼铃一样，给我方向和指引。</description><language>zh-cn</language><lastBuildDate>Sat, 14 Feb 2009 11:50:25 GMT</lastBuildDate><pubDate>Sat, 14 Feb 2009 11:50:25 GMT</pubDate><ttl>60</ttl><item><title>maven 中使用jetty原始文章</title><link>http://www.blogjava.net/nkjava/archive/2009/02/14/254684.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Sat, 14 Feb 2009 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2009/02/14/254684.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/254684.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2009/02/14/254684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/254684.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/254684.html</trackback:ping><description><![CDATA[<div style="margin: 0px 10px;" class="smalltext">Apache Wicket</div>
<div style="margin: 0px 10px 8px;" class="pagetitle">Maven Jetty plugin</div>
<div style="margin: 0px; padding: 2px 10px;" align="right">
<a href="http://cwiki.apache.org/confluence/pages/editpage.action?pageId=52203">
<img src="http://cwiki.apache.org/confluence/images/icons/notep_16.gif" title="Edit Page" alt="" align="absmiddle" border="0" width="16" height="16" /></a>
<a href="http://cwiki.apache.org/confluence/pages/editpage.action?pageId=52203">Edit Page</a>
&nbsp;
<a href="http://cwiki.apache.org/confluence/pages/listpages.action?key=WICKET">
<img src="http://cwiki.apache.org/confluence/images/icons/browse_space.gif" title="Browse Space" alt="" align="absmiddle" border="0" width="16" height="16" /></a>
<a href="http://cwiki.apache.org/confluence/pages/listpages.action?key=WICKET">Browse Space</a>
&nbsp;
<a href="http://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WICKET&amp;fromPageId=52203">
<img src="http://cwiki.apache.org/confluence/images/icons/add_page_16.gif" title="Add Page" alt="" align="absmiddle" border="0" width="16" height="16" /></a>
<a href="http://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WICKET&amp;fromPageId=52203">Add Page</a>
&nbsp;
<a href="http://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WICKET&amp;fromPageId=52203">
<img src="http://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif" title="Add News" alt="" align="absmiddle" border="0" width="16" height="16" /></a>
<a href="http://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WICKET&amp;fromPageId=52203">Add News</a>
</div>
<div style="margin: 0px 10px;">
Added by     <a href="http://cwiki.apache.org/confluence/users/viewuserprofile.action?username=funkattack">Martin Funk</a>, last edited by     <a href="http://cwiki.apache.org/confluence/users/viewuserprofile.action?username=bittlingmayer">Adam Mathias Bittlingmayer</a> on Jan 09, 2008
&nbsp;(<a href="http://cwiki.apache.org/confluence/pages/diffpages.action?pageId=52203&amp;originalId=74077">view change</a>)
</div>
<div>
<div>
<div style="border-style: solid;">
<div style="border-bottom-style: solid;"><strong>Table of contents</strong></div>
<div>
<div>
<ul>
    <li><a href="http://cwiki.apache.org/WICKET/maven-jetty-plugin.html#MavenJettyplugin-UsingtheMavenJettyplugin">Using the </a><a href="http://jetty.mortbay.org/maven-plugin/index.html" title="Visit page outside Confluence" rel="nofollow">Maven Jetty plugin<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a>
    <ul>
        <li><a href="http://jetty.mortbay.org/maven-plugin/howto.html" title="Visit page outside Confluence" rel="nofollow">Configuring HowTo<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a></li>
        <li><a href="http://cwiki.apache.org/WICKET/maven-jetty-plugin.html#MavenJettyplugin-Running">Running</a></li>
        <li><a href="http://cwiki.apache.org/WICKET/maven-jetty-plugin.html#MavenJettyplugin-RunningthewebappindebugmodeusingJavaPlatformDebuggerArchitecture%2528JPDA%2529">Running the webapp in debug mode using </a><a href="http://java.sun.com/javase/technologies/core/toolsapis/jpda/" title="Visit page outside Confluence" rel="nofollow">Java Platform Debugger Architecture (JPDA)<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a>
        <ul>
            <li><a href="http://cwiki.apache.org/WICKET/maven-jetty-plugin.html#MavenJettyplugin-Usingmavencommandline%253A">Using maven command line:</a></li>
            <li><a href="http://cwiki.apache.org/WICKET/maven-jetty-plugin.html#MavenJettyplugin-Usingeclipseexternaltools">Using </a><a href="http://docs.codehaus.org/display/JETTY/Debugging%20with%20the%20Maven%20Jetty%20Plugin%20inside%20Eclipse" title="Visit page outside Confluence" rel="nofollow">eclipse external tools<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a>:</li>
        </ul>
        </li>
        <li><a href="http://docs.codehaus.org/display/JETTY/Debugging%20with%20the%20Maven%20Jetty%20Plugin%20inside%20Eclipse" title="Visit page outside Confluence" rel="nofollow">Attaching<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a> to the server running in debug mode, using eclipse:</li>
    </ul>
    </li>
</ul>
</div>
</div>
</div>
<h1>Using the <a href="http://jetty.mortbay.org/maven-plugin/index.html" title="Visit page outside Confluence" rel="nofollow">Maven Jetty plugin<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a></h1>
<p>This note is to describe the above plugin. which will run your web application in an embedded Jetty6 instance by just<br />
typing <tt>"mvn jetty:run"</tt> - No need to download or install Jetty manually, it's all automatic once the Maven project<br />
descriptor's set up (the pom.xml)</p>
<h2><a href="http://jetty.mortbay.org/maven-plugin/howto.html" title="Visit page outside Confluence" rel="nofollow">Configuring HowTo<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a></h2>
<p>Add the following to the <tt>&lt;build&gt;&lt;plugins&gt;</tt> block of your projects <tt>pom.xml</tt></p>
<div>
<div>
<pre>&lt;plugin&gt;<br />
<br />
<br />
<br />
&lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt;<br />
<br />
<br />
<br />
&lt;artifactId&gt;maven-jetty-plugin&lt;/artifactId&gt;<br />
<br />
<br />
<br />
&lt;/plugin&gt;</pre>
</div>
</div>
<h2>Running</h2>
<p>In order to run Jetty on a webapp project which is structured
according to the usual Maven defaults, you don't need to configure
anything.</p>
<p>Simply type:</p>
<div>
<div>
<pre>mvn jetty:run</pre>
</div>
</div>
<p>Due to a <a href="http://jira.codehaus.org/browse/MPJETTY-11" title="Visit page outside Confluence" rel="nofollow">bug<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a>
in maven or the maven-jetty-plugin this only works if no jetty artifact
is present in the dependencies section of the pom.xml file. This is the
case for wicket-quickstart, wicket-examples and wicket-threadtest. So
the tips given here can't be applied to those projects.</p>
<h2>Running the webapp in debug mode using <a href="http://java.sun.com/javase/technologies/core/toolsapis/jpda/" title="Visit page outside Confluence" rel="nofollow">Java Platform Debugger Architecture (JPDA)<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a></h2>
<h3>Using maven command line:</h3>
<p>I couldn't find a command line reference for maven2, but the one given for <a href="http://maven.apache.org/maven-1.x/reference/command-line.html" title="Visit page outside Confluence" rel="nofollow">maven1<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a> still aplies for the feature used here:</p>
<p>First set MAVEN_OPTS environment variable with the following command:</p>
<div>
<div>
<pre>export MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y'</pre>
</div>
</div>
<p>After setting this property, run "maven jetty:run" and it will
block, waiting for a debug connection. If "suspend=n" is set, it will
start right away. </p>
<h3>Using <a href="http://docs.codehaus.org/display/JETTY/Debugging%20with%20the%20Maven%20Jetty%20Plugin%20inside%20Eclipse" title="Visit page outside Confluence" rel="nofollow">eclipse external tools<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a>:</h3>
<p>Running Eclipse Open "Run --&gt; External Tools --&gt; External
Tools... --&gt; Program". Press "New launch configuration". On the
"Main" tab, fill in the "Location:" as the full path to your "mvn"
executable. For the "Working Directory:" select the workspace that
matches your webapp. For "Arguments:" add jetty:run.</p>
<p>Move to the "Environment" tab and click the "New" button to add two new variables:</p>
<table>
    <tbody>
        <tr>
            <th> name</th>
            <th>value</th>
        </tr>
        <tr>
            <td>MAVEN_OPTS</td>
            <td>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y</td>
        </tr>
        <tr>
            <td>JAVA_HOME</td>
            <td>Path to your java executable</td>
        </tr>
    </tbody>
</table>
<p>As above the jvm will start right away when "suspend=n" is set.</p>
<h2><a href="http://docs.codehaus.org/display/JETTY/Debugging%20with%20the%20Maven%20Jetty%20Plugin%20inside%20Eclipse" title="Visit page outside Confluence" rel="nofollow">Attaching<sup><img src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" width="7" height="7" /></sup></a> to the server running in debug mode, using eclipse:</h2>
<p>Running Eclipse Open "Run --&gt; Debug... --&gt; Remote Java
Application". Press "New launch configuration". Fill in the dialog by
selecting your webapp project for the "Project:" field, and ensure you
are using the same port number as you specified in the address=
property above.</p>
<p>Now all you need to do is Run/Debug and select the name of the debug setup you setup above.</p>
<p>This article is a gathering of information, credits need to be given to the authors of the pages behind the given links.</p>
<p><br />
</p>
<p>&nbsp;Eclipse中用Maven来启动Jetty调试Web应用</p>
<p>1、先来配置一个外部工具，来运行JETTY：<br />
&nbsp;选择菜单Run-&gt;External Tools-&gt;External Tools ...在左边选择Program，再点New：<br />
&nbsp;配置Location为mvn完整命令行。定位到bin下的mvn.bat<br />
&nbsp;选择Working Directory为本项目。<br />
&nbsp;Arguments填写：jetty:run<br />
&nbsp;再点选Enviroment页：加入MAVEN_OPTS变量，值为：<br />
&nbsp;-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8080,server=y,suspend=y<br />
&nbsp;其中，如果suspend=n 表示不调试，直接运行。address=8080为端口<br />
&nbsp;然后，点APPLY，点击Run启动jetty<br />
&nbsp;<br />
2、调试应用<br />
&nbsp;点选run-&gt;debug...<br />
&nbsp;选中左树中的Remote Java Application，再点New。<br />
&nbsp;选择你的项目，关键是要填和之前设置外部工具时相同的端口号，其它都不变。<br />
&nbsp;<br />
注意：停止调试后，8080端口并没有关闭，再运行run-&gt;debug后会报错，具体原因没有去深究。建议采用TcpView等工具关闭对应端口的进程 <br />
</p>
</div>
</div>
<img src ="http://www.blogjava.net/nkjava/aggbug/254684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2009-02-14 17:37 <a href="http://www.blogjava.net/nkjava/archive/2009/02/14/254684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse+maven+jetty开发环境搭建（转自javaeye）</title><link>http://www.blogjava.net/nkjava/archive/2009/02/14/254682.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Sat, 14 Feb 2009 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2009/02/14/254682.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/254682.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2009/02/14/254682.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/254682.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/254682.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso" />
<link rel="OLE-Object-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_oledata.mso" /><!--[if !mso]>
<style>
v":* {behavior:url(#default#VML);}
o":* {behavior:url(#default#VML);}
w":* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if !mso]>
<style>
st1":*{behavior:url(#ieooui) }
</style>
<![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:黑体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@黑体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
h2
{
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
line-height:173%;
page-break-after:avoid;
font-size:16.0pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;
text-underline:single;}
/* Page Definitions */
@page
{}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
</style>
<![endif]-->
<div>
<ul>
    <li><a href="http://lguan.javaeye.com/topics/download/96939de4-7150-4635-af21-33f1b92e8f4e">Eclipse+maven+jetty开发Tapestry5实例.rar</a> (333.6 KB)</li>
</ul>
</div>
<p style="text-align: center;" align="center"><strong>&nbsp;</strong></p>
<br />
<img src ="http://www.blogjava.net/nkjava/aggbug/254682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2009-02-14 17:07 <a href="http://www.blogjava.net/nkjava/archive/2009/02/14/254682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>maven pom.xml介绍</title><link>http://www.blogjava.net/nkjava/archive/2009/02/14/254680.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Sat, 14 Feb 2009 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2009/02/14/254680.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/254680.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2009/02/14/254680.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/254680.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/254680.html</trackback:ping><description><![CDATA[这里要使用Maven的achetype机制，一个achetype被定义成一个原始的模式或者模型。在Maven里，archetype是一个项目的模板，通过这个模板，再加上一些用户的输入就产生了一个可以工作的、符合用户需要的Maven项目。 <br />
下面开始创建第一个项目，执行一下命令行： <br />
Mvn archetype:create &#8211;DgroupId=com.mycompany.app &#8211;DartifactId=my-app <br />
一旦执行了以上命令，你会发现maven为这个新项目创建了一个名为my-app的目录，同时此目录中有一个pom.xml文件，文件内容如下所示： <br />
&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <br />
<br />
&nbsp; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt; <br />
<br />
&nbsp;  &lt;modelVersion&gt;4.0.0 &lt;/modelVersion&gt; <br />
<br />
&nbsp;  &lt;groupId&gt;com.mycompany.app &lt;/groupId&gt; <br />
<br />
&nbsp;  &lt;artifactId&gt;my-app &lt;/artifactId&gt; <br />
<br />
&nbsp;  &lt;packaging&gt;jar &lt;/packaging&gt; <br />
<br />
&nbsp;  &lt;version&gt;1.0-SNAPSHOT &lt;/version&gt; <br />
<br />
&nbsp;  &lt;name&gt;Maven Quick Start Archetype &lt;/name&gt; <br />
<br />
&nbsp;  &lt;url&gt;http://maven.apache.org &lt;/url&gt; <br />
<br />
&nbsp;  &lt;dependencies&gt; <br />
<br />
&nbsp; &nbsp;  &lt;dependency&gt; <br />
<br />
&nbsp; &nbsp; &nbsp;  &lt;groupId&gt;junit &lt;/groupId&gt; <br />
<br />
&nbsp; &nbsp; &nbsp;  &lt;artifactId&gt;junit &lt;/artifactId&gt; <br />
<br />
&nbsp; &nbsp; &nbsp;  &lt;version&gt;3.8.1 &lt;/version&gt; <br />
<br />
&nbsp; &nbsp; &nbsp;  &lt;scope&gt;test &lt;/scope&gt; <br />
<br />
&nbsp; &nbsp;  &lt;/dependency&gt; <br />
<br />
&nbsp;  &lt;/dependencies&gt; <br />
<br />
&lt;/project&gt; <br />
Pom.xml包含项目对象模型（POM）。POM是Maven的基本单元，记住，Maven是以项目为中心的，所有的东西都围绕项目展开。简而言之，POM包含项目的所有重要信息，并且本质上提供了一站式的项目信息。关于pom的详细介绍，请参考《POM介绍》。 <br />
下面是pom中的一些重要元素： <br />
&#216;&nbsp; &nbsp; &nbsp;  project：pom.xml文件中的顶层元素； <br />
&#216;&nbsp; &nbsp; &nbsp;  modelVersion：指明POM使用的对象模型的版本。这个值很少改动。<br />
&#216;&nbsp; &nbsp; &nbsp;  groupId：指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识，典型的，此标识以组织的完全限定名来定义。比如，org.apache.maven.plugins是所有Maven插件项目指定的groupId。 <br />
<br />
&#216;&nbsp; &nbsp; &nbsp;
artifactId：指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二，象源代码包通常使用artifactId作为最
后名称的一部分。典型的产品名称使用这个格式： &lt;artifactId&gt;- &lt;version&gt;.
&lt;extension&gt;(比如：myapp-1.0.jar)。 <br />
<br />
&#216;&nbsp; &nbsp; &nbsp;  version：项目产品的版本号。Maven帮助你管理版本，可以经常看到SNAPSHOT这个版本，表明项目处于开发阶段。 <br />
<br />
&#216;&nbsp; &nbsp; &nbsp;  name：项目的显示名称，通常用于maven产生的文档中。 <br />
<br />
&#216;&nbsp; &nbsp; &nbsp;  url：指定项目站点，通常用于maven产生的文档中。 <br />
<br />
&#216;&nbsp; &nbsp; &nbsp;  description：描述此项目，通常用于maven产生的文档中。<br />
<br />
POM中所有元素的说明，请参考《POM参考》。 <br />
<br />
产生了第一个项目的archetype后，你可以发现maven为你创建了如下的目录结构： <br />
<br />
my-app <br />
<br />
|-- pom.xml <br />
<br />
`-- src <br />
<br />
&nbsp; &nbsp; |-- main <br />
<br />
&nbsp; &nbsp; |&nbsp;  `-- java <br />
<br />
&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp;  `-- com <br />
<br />
&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  `-- mycompany <br />
<br />
&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  `-- app <br />
<br />
&nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  `-- App.java <br />
<br />
&nbsp; &nbsp; `-- test <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; `-- java <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; `-- com <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; `-- mycompany <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; `-- app <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; `-- AppTest.java <br />
<br />
从archetype产生的项目有一个POM，一个源代码树，以及一个测试代码树，这是maven项目的标准布局（应用程序源码位
于${basedir}/src/main/java，而测试源码位于${basedir}/src/test/java，这里${basedir}代表
包含pom.xml的根目录）。 <br />
<img src ="http://www.blogjava.net/nkjava/aggbug/254680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2009-02-14 16:32 <a href="http://www.blogjava.net/nkjava/archive/2009/02/14/254680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Maven管理项目-----创建Struts2,Spring,Hibernate项目(转载整理)</title><link>http://www.blogjava.net/nkjava/archive/2009/02/14/254679.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Sat, 14 Feb 2009 08:30:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2009/02/14/254679.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/254679.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2009/02/14/254679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/254679.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/254679.html</trackback:ping><description><![CDATA[Maven应该都听说过吧！一个构建工具！与Ant相比，它更粗粒化！不需要编写build.xml文件，来操作项目的编译，运行，打包！只要你创建了一个Maven项目，编译，只需要mvn compile！Maven会自动的帮你完成编译！<br />
关于Maven2的知识请看这里！<br />
http://books.sonatype.com/maven-book/reference_zh/introduction.html<br />
这是翻译，还没翻译完，到16章，不过应该够用了目前！<br />
这里使用eclipse来开发Maven项目！eclipse需要一个插件，m2eclipse,目前应该是最强的Maven插件，非常的方便！待会就能体会到！<br />
m2eclipse的安装，看这里！<br />
http://books.sonatype.com/maven-book/reference_zh/eclipse.html<br />
<br />
还有关于Maven建立本地jar仓库的内容，翻译里面都有！<br />
<br />
安装完插件，就可以创建Maven项目了！Maven项目是基于原型的！创建完了，就是一个架子！<br />
下面就可以创建Struts2+Spring+Hibernate项目了。非常非常的简单，比Myeclipse的创建过程可能都简单！（有段时间没用Myeclipse了。。）<br />
1.new -&gt;project-&gt;other...<br />
<br />
2.第二步直接next即可<br />
3.<br />
这里是选择Maven项目的原型！搜索一下，struts,就能找到了！点中需要的原型，next.<br />
4<br />
这里是Maven项目的相关内容。可以参考上面的翻译。<br />
Group Id ,Artifact Id,Version唯一的确定了你的项目！<br />
这里，Group Id可以随便你写，Artifact Id为项目的名称，Version嘛。。。。不多说。<br />
下面的Package是包嘛，随你便咯！搞定，Finish即可！<br />
然后，等吧！Maven会下载需要的jar文件！这可能会让第一次使用Maven的人感觉到很不爽！至少我是很不爽！国内网速比较慢！所以下载需要不少时间！但是第一次下载完后，以后再建项目时它不会再下载的！<br />
创建完成后，就项目就会像这个样子！<br />
<br />
是不是感觉很别扭！java文件在，src/main/java下面，资源文件在src/main/resources下面，还有对应的test目录。这个应该是个习惯问题！慢慢就好！<br />
目前这个项目是Struts2+Spring的项目！里面就有基本代码！<br />
发布内容在src/main/webapp下面，找到index.jsp，右击，run on server即可运行了！<br />
现在所有的java类都在src/main/java目录下，下面并没有struts.xml文件，它被放到了src/main/resources下面了，部署时会自动拷贝过去的！不用担心！<br />
现在添加Hibernate，打开pom.xml文件，在项目根目录下！你会发现有很多的视图方式，具体看上面的翻译即可！<br />
修改pom.xml文件，直接到代码区，放心，不需要你敲任何代码！右击鼠标，找到Maven,add
dependency,输入hibernate，找到org.hibernate,点中需要的jar，点OK即可！我下过了，所以显好红
色！eclipse会自动的下载需要的依赖包！<br />
<br />
这里面，Maven仓库可能有点问题，jta包，1.0.1B版本没有，所以，自己选择jta1.1下载！<br />
<br />
依然，是eclipse自动的下载jar，不需要你找到jar去copy到WEB-INF/lib下了！当然，只下载一次!<br />
最后，当然就是配置Hibernate了，配置方法就不多说了吧！<br />
使用Maven有什么好处呢？<br />
首先是，jar统一管理了！如果建立了一个本地的jar仓库，那么所有人都是从仓库里面下载jar，拷贝项目时只需要copy几K的源码即可！<br />
其次，依然是仓库，使得每个人的jar版本都是一致的，不会出现因为版本不同，引起的莫名其妙的错误。<br />
再来，项目的自动化，只需要mvn package命令，在eclipse里面，看run里面，只需要选择就行了！它会自动的从编译，测试开始，一直到打包，自动的运行，保证你的包没有问题。<br />
上面的作用对我没什么诱惑力！我使用Maven是因为，可以在IDE之间自由的切换！<br />
不知道大家有没有这样的经历！eclipse创建的项目，要到netbeans或者idea下面跑，要修改一堆东西！<br />
而现在，只要IDE装了Maven插件，就可以随便用IDE了。对于eclipse和idea。不装Maven插件都可以，只需要在项目根目录下运行
mvn eclipse:eclipse,mvn idea:odea。完成后，当作普通的eclipse,idea工程打开就可以了，非常的方便！<br />
当然了，不喜欢Maven，只需要按以往的方式开发就可以了，只不过就是目录结构不一样了！
<img src ="http://www.blogjava.net/nkjava/aggbug/254679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2009-02-14 16:30 <a href="http://www.blogjava.net/nkjava/archive/2009/02/14/254679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>maven2过程当中的总结(转载)</title><link>http://www.blogjava.net/nkjava/archive/2009/02/14/254649.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Sat, 14 Feb 2009 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2009/02/14/254649.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/254649.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2009/02/14/254649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/254649.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/254649.html</trackback:ping><description><![CDATA[<span>下面是一些使用maven2过程当中的总结，有一些来自网络，恕不一一提名。<br />
最后提到两个问题，是我一直没有解决的，如果有用maven2的朋友也遇到那两个问题，还请帮忙指导一下。<br />
【常用命令】<br />
mvn archetype:generate	//创建 Maven 项目<br />
mvn compile	//编译源代码<br />
mvn test-compile	//编译测试代码<br />
mvn test	//运行应用程序中的单元测试<br />
mvn site	//生成项目相关信息的网站<br />
mvn clean	//清除目标目录中的生成结果<br />
mvn package	//依据项目生成 jar 文件<br />
mvn install	//在本地 Repository 中安装 jar<br />
mvn eclipse:eclipse	//生成 Eclipse 项目文件<br />
<br />
【生成项目】<br />
JAVA项目	mvn archetype:generate -DgroupId=com.demo -DartifactId=App<br />
web 项目	mvn archetype:generate -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp<br />
<br />
【生成eclipse项目】<br />
普通eclipse项目		mvn eclipse:eclipse<br />
eclipse WTP项目		mvn eclipse:eclipse -Dwtpversion=1.0(wtp1.0+可用)<br />
eclipse-&gt;file-&gt;import-&gt;General-&gt;Existing Projects into Workspace<br />
Window-&gt;Preferences-&gt;Java-&gt;Build Path-&gt;Classpath Variables<br />
New Name 命名:M2_REPO<br />
路径:本地的 maven 类库地址(%USER_HOME%/.m2/repository)<br />
<br />
【pom.xml 基本节点】<br />
&lt;project&gt;	根节点<br />
&lt;modelversion&gt;	pom.xml 使用的对象模型版本<br />
&lt;groupId&gt;	创建项目的组织或团体的唯一 Id<br />
&lt;artifactId&gt;	项目唯一Id, 项目名<br />
&lt;packaging&gt;	打包扩展名(JAR、WAR、EAR)<br />
&lt;version&gt;	项目版本号<br />
&lt;name&gt;		显示名，用于生成文档<br />
&lt;url&gt;		组织站点，用于生成文档<br />
&lt;description&gt;	项目描述，用于生成文档<br />
&lt;dependency&gt;之&lt;scope&gt;	管理依赖部署<br />
<br />
&lt;scope&gt; 可使用 5 个值:<br />
compile		缺省值，用于所有阶段，随项目一起发布<br />
provided	期望JDK、容器或使用者提供此依赖。如servlet.jar<br />
runtime		只在运行时使用<br />
test		只在测试时使用，不随项目发布<br />
system		需显式提供本地jar，不在代码仓库中查找<br />
【库版本选择】<br />
&lt;dependency&gt;<br />
&lt;groupId&gt;org.codehaus.plexus&lt;/groupId&gt;<br />
&lt;artifactId&gt;plexus-utils&lt;/artifactId&gt;<br />
&lt;version&gt;[1.1,)&lt;/version&gt;<br />
&lt;/dependency&gt;<br />
表达式			含义<br />
(,1.0]			version&lt;=1.0<br />
[1.2,1.3]		1.2&lt;=version&lt;=1.3<br />
[1.0,2.0)		1.0&lt;=version&lt;2.0<br />
[1.5,)			1.5&lt;=version<br />
(,1.1),(1.1,)		version!=1.1<br />
【定义自己的结构】<br />
1、新建 archetype 项目(模板项目):<br />
mvn archetype:genera -DgroupId=org.simple -DartifactId=simple -DarchetypeArtifactId=maven-archetype-archetype<br />
2、修改主要模板文件：archetype-resources/pom.xml<br />
1)修改 META-INF/maven/archetype.xml 中相关的 sources<br />
2)安装此项目:mvn install<br />
3、根据模板项目创建新项目:<br />
mvn archetype:generate<br />
-DarchetypeGroupId=org.simple"<br />
-DarchetypeArtifactId= simple "<br />
-DarchetypeVersion=1.0-SNAPSHOT <br />
<br />
【安装私有库】<br />
1、复制 mylib-1.2.3.jar 到本地代码库<br />
2、编写 mylib-1.2.3.pom 文件:<br />
&lt;project&gt;<br />
&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;<br />
&lt;groupId&gt;com.mylib&lt;/groupId&gt;<br />
&lt;artifactId&gt;mylib&lt;/artifactId&gt;<br />
&lt;version&gt;1.2.3&lt;/version&gt;<br />
&lt;/project&gt;<br />
如果有依赖关系，可以将依赖关系描述在 pom 中<br />
3、用Ant 来生成 jar 包和 pom 文件的 checksum 文件:<br />
build.xml:<br />
&lt;project default="checksum"&gt;<br />
&lt;target name="checksum"&gt;<br />
&lt;checksum file="mylib-1.2.3.jar" algorithm="SHA" fileext=".sha1"/&gt;<br />
&lt;checksum file="mylib-1.2.3.pom" algorithm="SHA" fileext=".sha1"/&gt;<br />
&lt;/target&gt;<br />
&lt;/project&gt;<br />
4、生成 mylib-1.2.3.jar.sha1 和 mylib-1.2.3.pom.sha1 文件<br />
ant build.xml<br />
【使用版本控制】<br />
提交:mvn scm:checkin -Dmessage="Message"<br />
检出:mvn scm:checkout<br />
更新:mvn scm:update<br />
【UTF8编码编译失败】<br />
editplus打开文件:文档-&gt;参数设置-&gt;文件-&gt;UTF-8签名-&gt;总是移除签名-&gt;确定-&gt;另存为UTF8文件<br />
<br />
一些问题：<br />
1、UTF8编码的文件安装成archetype项目后，再照此模板生成新项目会有些中文字符不识别，不知道如何改<br />
2、UTF8编码的文件安装成archetype项目后，如果同时安装了gif图片，再照此模板生成新项目时gif文件损坏，但在安装在rep中的模板项目中的gif文件是好的。
</span>
<img src ="http://www.blogjava.net/nkjava/aggbug/254649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2009-02-14 11:52 <a href="http://www.blogjava.net/nkjava/archive/2009/02/14/254649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MVN 报错</title><link>http://www.blogjava.net/nkjava/archive/2009/02/12/254444.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Thu, 12 Feb 2009 13:04:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2009/02/12/254444.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/254444.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2009/02/12/254444.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/254444.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/254444.html</trackback:ping><description><![CDATA[<pre>[INFO] ------------------------------------------------------------------------<br />
<br />
[ERROR] BUILD ERROR<br />
<br />
[INFO] ------------------------------------------------------------------------<br />
<br />
[INFO] Failed to resolve artifact.<br />
<br />
<br />
<br />
Missing:<br />
<br />
----------<br />
<br />
1) javax.jms:jms:jar:1.1<br />
<br />
<br />
<br />
Try downloading the file manually from:<br />
<br />
http://java.sun.com/products/jms/docs.html<br />
<br />
<br />
<br />
Then, install it using the command:<br />
<br />
mvn install:install-file -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar -Dfile=/path/to/file<br />
<br />
<br />
<br />
Alternatively, if you host your own repository you can deploy the file there:<br />
<br />
mvn deploy:deploy-file -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]<br />
<br />
<br />
<br />
Path to dependency:<br />
<br />
1) example.helloworld:WicketHelloWorld:war:0.0.1-SNAPSHOT<br />
<br />
2) log4j:log4j:jar:1.2.15<br />
<br />
3) javax.jms:jms:jar:1.1<br />
<br />
<br />
<br />
2) com.sun.jdmk:jmxtools:jar:1.2.1<br />
<br />
<br />
<br />
Try downloading the file manually from:<br />
<br />
http://java.sun.com/products/JavaManagement/download.html<br />
<br />
<br />
<br />
Then, install it using the command:<br />
<br />
mvn install:install-file -DgroupId=com.sun.jdmk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar -Dfile=/path/to/file<br />
<br />
<br />
<br />
Alternatively, if you host your own repository you can deploy the file there:<br />
<br />
mvn deploy:deploy-file -DgroupId=com.sun.jdmk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -Drepositor<br />
<br />
yId=[id]<br />
<br />
<br />
<br />
Path to dependency:<br />
<br />
1) example.helloworld:WicketHelloWorld:war:0.0.1-SNAPSHOT<br />
<br />
2) log4j:log4j:jar:1.2.15<br />
<br />
3) com.sun.jdmk:jmxtools:jar:1.2.1<br />
<br />
<br />
<br />
3) com.sun.jmx:jmxri:jar:1.2.1<br />
<br />
<br />
<br />
Try downloading the file manually from the project website.<br />
<br />
<br />
<br />
Then, install it using the command:<br />
<br />
mvn install:install-file -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar -Dfile=/path/to/file<br />
<br />
<br />
<br />
Alternatively, if you host your own repository you can deploy the file there:<br />
<br />
mvn deploy:deploy-file -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=<br />
<br />
[id]<br />
<br />
<br />
<br />
Path to dependency:<br />
<br />
1) example.helloworld:WicketHelloWorld:war:0.0.1-SNAPSHOT<br />
<br />
2) log4j:log4j:jar:1.2.15<br />
<br />
3) com.sun.jmx:jmxri:jar:1.2.1<br />
<br />
<br />
<br />
----------<br />
<br />
3 required artifacts are missing.<br />
<br />
<br />
<br />
这一般是由log4j的版本问题引起的，我之前的配置如下：<br />
<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; &lt;groupId&gt;log4j&lt;/groupId&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;log4j&lt;/artifactId&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; &lt;version&gt;1.2.5&lt;/version&gt;<br />
<br />
&lt;/dependency&gt; <br />
<br />
就会引起上面的错误，改成如下的写法即可<br />
<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; &lt;groupId&gt;log4j&lt;/groupId&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;log4j&lt;/artifactId&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; &lt;version&gt;[1.2,)&lt;/version&gt;<br />
<br />
&lt;/dependency&gt; <br />
<br />
<br />
<br />
</pre>
<img src ="http://www.blogjava.net/nkjava/aggbug/254444.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2009-02-12 21:04 <a href="http://www.blogjava.net/nkjava/archive/2009/02/12/254444.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>maven 构建hibernate项目时缺少jta包解决办法</title><link>http://www.blogjava.net/nkjava/archive/2009/02/12/254438.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Thu, 12 Feb 2009 12:24:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2009/02/12/254438.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/254438.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2009/02/12/254438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/254438.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/254438.html</trackback:ping><description><![CDATA[<h2><a href="http://programmers-blog.com/2008/05/24/maven-missing-jta-artifact" class="">Maven missing JTA artifact</a></h2>
<div>
<p>When you get in Maven:</p>
<pre>Missing indirectly referenced artifact javax.transaction:jta:jar:1.0.1B:compile<br />
<br />
</pre>
<p>the solution is to download &#8220;Class Files 1.0.1B&#8221; from http://java.sun.com/javaee/technologies/jta/index.jsp
and then do:</p>
<pre>mvn install:install-file -Dfile=./jta-1_0_1B-classes.zip <br />
<br />
-DgroupId=javax.transaction -DartifactId=jta <br />
<br />
-Dversion=1.0.1B -Dpackaging=jar<br />
<br />
</pre>
</div>
<img src ="http://www.blogjava.net/nkjava/aggbug/254438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2009-02-12 20:24 <a href="http://www.blogjava.net/nkjava/archive/2009/02/12/254438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>