﻿<?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/lifw/category/40172.html</link><description>一路走来~~</description><language>zh-cn</language><lastBuildDate>Wed, 10 Jun 2009 02:32:25 GMT</lastBuildDate><pubDate>Wed, 10 Jun 2009 02:32:25 GMT</pubDate><ttl>60</ttl><item><title>转：解决Maven中OutOfMemory错误</title><link>http://www.blogjava.net/lifw/archive/2009/06/10/281045.html</link><dc:creator>老文</dc:creator><author>老文</author><pubDate>Wed, 10 Jun 2009 01:01:00 GMT</pubDate><guid>http://www.blogjava.net/lifw/archive/2009/06/10/281045.html</guid><wfw:comment>http://www.blogjava.net/lifw/comments/281045.html</wfw:comment><comments>http://www.blogjava.net/lifw/archive/2009/06/10/281045.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lifw/comments/commentRss/281045.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifw/services/trackbacks/281045.html</trackback:ping><description><![CDATA[<h3 class="type_original" title="原创">转自：http://juvenshun.javaeye.com/blog/240257</h3>
---------------------------------------------------------------------------<br />
<h3 class="type_original" title="原创"><a href="http://juvenshun.javaeye.com/blog/240257">解决Maven中OutOfMemory错误</a></h3>
<strong>关键字: maven outofmemoryerror</strong>
<p>当Maven项目很大，或者你运行诸如 mvn site 这样的命令的时候，maven运行需要很大的内存，在默认配置下，就可能遇到java的堆溢出。如：</p>
<div class="quote_title"> </div>
<div class="quote_div">[INFO] Building jar:
/home/dl9pf/svn/mindquarry/mindquarry-jcr/mindquarry-jcr-changes/target/mindquarry-migration-with-dependencies.jar<br />
[INFO] ------------------------------------------------------------------------<br />
[ERROR] FATAL ERROR<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Java heap space<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Trace<br />
java.lang.OutOfMemoryError: Java heap space<br />
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99)<br />
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:518)<br />
...<br />
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)<br />
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)<br />
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)<br />
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Total time: 7 minutes 14 seconds<br />
[INFO] Finished at: Wed Sep 05 07:44:55 CEST 2007<br />
[INFO] Final Memory: 37M/63M<br />
[INFO] ------------------------------------------------------------------------
</div>
<p>解决的方法是调整java的堆大小的值。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2><span style="font-size: small;"><strong><span>Windows环境中</span>
</strong>
</span>
</h2>
<p><span style="font-size: small;"><strong>
</strong></span>
<strong> 找到文件<em>%M2_HOME%\bin\mvn.bat</em>
，这就是启动Maven的脚本文件，在该文件中你能看到有一行注释为：</strong></p>
<p><strong>&nbsp; @REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...</strong></p>
<p><strong>它的意思是你可以设置一些Maven参数，我们就在注释下面加入一行：</strong></p>
<div class="quote_title"><strong> </strong></div>
<div class="quote_div"><strong>set MAVEN_OPTS= -Xms128m -Xmx512m</strong></div>
<p><strong>之后，当你运行Maven命令如 mvn -version 的时候，你会看到如下的输出：</strong></p>
<div class="quote_title"><strong> </strong></div>
<div class="quote_div"><strong>E:\test&gt;mvn -version<br />
<br />
E:\test&gt;set MAVEN_OPTS= -Xms128m -Xmx512m<br />
Maven version: 2.0.9<br />
Java version: 1.6.0_07<br />
OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows"</strong></div>
<p><strong>我们看到，配置的Maven选项生效了，OutOfMemoryError也能得以相应的解决。</strong></p>
<p><strong>&nbsp;</strong></p>
<p><strong>&nbsp;</strong></p>
<h2><span style="font-size: small;"><strong><strong><span>Linux环境中</span>
</strong>
</strong></span>
</h2>
<p><span style="font-size: small;"><strong><strong>
</strong></strong></span>
<strong><strong>也可以通过设置环境变量解决该问题， 如，编辑文件<em> /etc/profile</em>
如下</strong></strong></p>
<div class="quote_title"><strong><strong> </strong></strong></div>
<div class="quote_div"><strong><strong>MAVEN_OPTS=-Xmx512m<br />
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH</strong></strong></div>
<p><strong><strong>&nbsp;</strong></strong></p>
<p><strong><strong>&nbsp;</strong></strong></p>
<h2><strong><strong><strong><span style="font-size: small;">如果你使用Hudson</span>
</strong>
</strong></strong></h2>
<p><strong><strong><strong>
</strong>
</strong></strong></p>
<p><strong><strong>用 Hudson + Maven做持续集成，并不幸也遇到了类似的错误，那么上述两种方式都将不再起作用了，因为Hudson使用自己的maven-agent来启动Maven，不会去调用Maven的脚本，自然相应的配置也就无效了。</strong></strong></p>
<p><strong><strong>好在Hudson也给为我们提供了配置点，在Hudson的项目配置页面中，有一块Build区域，这里我们已经
设置了Root
Pom和Goals。注意该区域的右下角有一个"Advanced..."按钮，点击会看到MAVEN_OPTS输入框，这里输入"-Xmx512m"就
OK了。</strong></strong></p>
<p><strong><strong>&nbsp;</strong></strong></p>
<h2><strong><strong>m2eclipse中</strong></strong></h2>
<p><strong><strong>类似以上的方法都会失效，所幸m2eclipse提供了配置点。步骤如下：</strong></strong></p>
<p><strong><strong>项目上右击 -&gt; Run As -&gt; Run Configurations -&gt; Maven Build 上右击 -&gt; New</strong></strong></p>
<p><strong><strong>这时会看到一个maven运行配置对话框，这里面其它的配置我不多解释了，为了解决内存溢出的问题，我们可以选择第二个TAB: JRE，然后在VM arguments中输入配置如：-Xms128m -Xmx512m。</strong></strong></p>
<img src ="http://www.blogjava.net/lifw/aggbug/281045.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifw/" target="_blank">老文</a> 2009-06-10 09:01 <a href="http://www.blogjava.net/lifw/archive/2009/06/10/281045.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>maven的基本用法</title><link>http://www.blogjava.net/lifw/archive/2009/06/09/280810.html</link><dc:creator>老文</dc:creator><author>老文</author><pubDate>Tue, 09 Jun 2009 03:16:00 GMT</pubDate><guid>http://www.blogjava.net/lifw/archive/2009/06/09/280810.html</guid><wfw:comment>http://www.blogjava.net/lifw/comments/280810.html</wfw:comment><comments>http://www.blogjava.net/lifw/archive/2009/06/09/280810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lifw/comments/commentRss/280810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifw/services/trackbacks/280810.html</trackback:ping><description><![CDATA[<font face="Thorndale AMT, serif">mvn
install -Dmaven.test.skip=true</font>
<img src ="http://www.blogjava.net/lifw/aggbug/280810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifw/" target="_blank">老文</a> 2009-06-09 11:16 <a href="http://www.blogjava.net/lifw/archive/2009/06/09/280810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>