`
kiven_zbb
  • 浏览: 633 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

解决Maven中OutOfMemory错误

 
阅读更多

 当Maven项目很大,或者你运行诸如 mvn site 这样的命令的时候,maven运行需要很大的内存,在默认配置下,就可能遇到java的堆溢出。如:

 
[INFO] Building jar: /home/dl9pf/svn/mindquarry/mindquarry-jcr/mindquarry-jcr-changes/target/mindquarry-migration-with-dependencies.jar
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Java heap space
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.OutOfMemoryError: Java heap space
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:518)
...
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 minutes 14 seconds
[INFO] Finished at: Wed Sep 05 07:44:55 CEST 2007
[INFO] Final Memory: 37M/63M
[INFO] ------------------------------------------------------------------------

解决的方法是调整java的堆大小的值。

 

 

Windows环境中

找到文件%M2_HOME%\bin\mvn.bat ,这就是启动Maven的脚本文件,在该文件中你能看到有一行注释为:

  @REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...

它的意思是你可以设置一些Maven参数,我们就在注释下面加入一行:

 
set MAVEN_OPTS= -Xms128m -Xmx512m

之后,当你运行Maven命令如 mvn -version 的时候,你会看到如下的输出:

 
E:\test>mvn -version

E:\test>set MAVEN_OPTS= -Xms128m -Xmx512m
Maven version: 2.0.9
Java version: 1.6.0_07
OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows"

我们看到,配置的Maven选项生效了,OutOfMemoryError也能得以相应的解决。

 

 

Linux环境中

也可以通过设置环境变量解决该问题, 如,编辑文件 /etc/profile 如下

 
MAVEN_OPTS=-Xmx512m
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH

 

 

如果你使用Hudson

 

用 Hudson + Maven做持续集成,并不幸也遇到了类似的错误,那么上述两种方式都将不再起作用了,因为Hudson使用自己的maven-agent来启动Maven,不会去调用Maven的脚本,自然相应的配置也就无效了。

好在Hudson也给为我们提供了配置点,在Hudson的项目配置页面中,有一块Build区域,这里我们已经设置了Root Pom和Goals。注意该区域的右下角有一个"Advanced..."按钮,点击会看到MAVEN_OPTS输入框,这里输入"-Xmx512m"就OK了。

 

m2eclipse中

类似以上的方法都会失效,所幸m2eclipse提供了配置点。步骤如下:

项目上右击 -> Run As -> Run Configurations -> Maven Build 上右击 -> New

这时会看到一个maven运行配置对话框,这里面其它的配置我不多解释了,为了解决内存溢出的问题,我们可以选择第二个TAB: JRE,然后在VM arguments中输入配置如:-Xms128m -Xmx512m。

分享到:
评论

相关推荐

    Maven发布Jar包中文乱码解决方法

    Maven发布Jar包中文乱码解决方法 Maven 是一个基于项目对象模型(Project Object...通过在 pom.xml 文件中添加配置、在 Maven 命令中添加参数、在资源文件中添加配置等方式,可以解决 Maven 发布 Jar 包中文乱码问题。

    maven安装maven安装maven安装maven安装maven安装

    maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...

    ​实现maven项目中多版本依赖兼容使用解决方案

    以下是如何实现Maven项目中多版本依赖兼容的解决方案: 1. **理解Maven依赖管理**: Maven依赖管理遵循“传递性”原则,即项目可以直接依赖其他项目,间接依赖也会被自动引入。当出现相同类路径的冲突时,Maven会...

    maven搭建、集成,创建聚合项目问题及错误解决

    本篇文章将详细探讨"Maven搭建、集成,创建聚合项目问题及错误解决"的相关知识点。 一、Maven本地搭建 在开始使用Maven之前,首先需要在本地安装Maven。这通常涉及下载最新版本的Maven,解压到合适的位置,并将...

    maven打包出错解决办法,亲测绝对可以!

    本篇文章将详细阐述如何解决Maven打包出错的问题,并分享一些关于搭建Maven私服的知识。 一、Maven打包出错常见原因及解决办法 1. **依赖冲突**:当项目中的多个库引用了不同版本的同一个依赖时,可能导致冲突。...

    清除maven中错误的jar

    清楚maven中错误的jar,将地址改成自己maven仓库的地址就可以双击执行就可以了。

    maven 常见错误集合

    ** Maven常见错误集合详解 在使用Maven进行Java项目构建时,可能会遇到各种问题,这里...总的来说,理解并解决Maven在构建过程中的错误是每个开发者必备的技能,通过合理配置和有效调试,可以确保项目构建的顺利进行。

    ojdbc6 解决maven缺失问题

    在Maven仓库中找不到ojdbc6:ojdbc6:11.2.0.3这个依赖时,我们需要采取一些方法来解决这个问题。 首先,让我们理解一下Maven的依赖管理机制。Maven通过其中央仓库获取第三方库,但是不是所有的库都会在这个仓库中。...

    idea2019导入maven项目中的某些问题及解决方法

    idea2019导入maven项目中的某些问题及解决方法 Idea2019中导入Maven项目时可能会出现一些问题,这些问题可能会导致项目无法正常运行或者出现错误。本文总结了在Idea2019中导入Maven项目时的一些常见问题和解决方法...

    maven本地仓库错误jar包删除

    一键删除maven本地仓库中下载错误的jar包资源(以lastUpdated结尾的文档)

    IDEA 2020.1版本 maven Test命令出现导包错误.docx

    总之,处理IDEA中的Maven Test命令导包错误,关键在于正确配置IDEA与Maven的交互,及时清理和重新导入项目,以及保持在线模式以获取最新的依赖。通过这些步骤,可以有效地解决大多数导入错误问题。

    maven3.6maven3.6maven3.6

    Maven是Java世界中的一款强大的项目管理和构建工具,它极大地简化了软件项目的构建、依赖管理和文档生成过程。在本文中,我们将深入探讨Maven 3.6版本,这是Maven的一个重要迭代,带来了许多改进和优化。 Maven的...

    maven-javadoc-plugin 中文 注释 API 解决乱码 pom xml

    ### Maven-javadoc-plugin 中文注释 API 解决乱码及时间问题详解 #### 一、背景介绍 在软件开发过程中,API文档对于提高代码可读性、方便团队成员之间的交流至关重要。Maven作为一款强大的自动化构建工具,在项目...

    maven 实用指南 中文

    **Maven实用指南中文版**,作为Java开发者必备的构建工具,Maven简化了项目管理和构建过程,使得依赖管理、构建脚本以及项目信息管理变得...通过阅读这本书,你将学会如何高效地使用Maven,解决实际开发中的各种问题。

    maven下载依赖失败的错误文件的命令执行文件

    解决maven下载依赖失败的错误文件的命令执行文件

    解决maven项目创建过慢的问题.txt

    此外,文章中提到的IDEA快捷键虽然与解决Maven项目创建过慢的问题关联不大,但了解这些快捷键能够帮助开发者更高效地进行编码和调试工作。例如,`Alt+回车`用于导入包和自动修正、`Ctrl+N`用于查找类、`Ctrl+Shift+N...

    maven 3.5.2 maven 3.5.2 maven 3.5.2

    Maven 3.5.2作为一个成熟的项目管理工具,极大地简化了Java开发中的构建和依赖管理。通过理解并熟练使用Maven,开发者可以更专注于编写代码,而无需关心构建过程的复杂性。在实际工作中,正确配置和利用Maven可以...

    maven内存溢出解决放啊

    本文将详细介绍如何在不同环境下解决Maven构建过程中出现的内存溢出问题。 #### 二、内存溢出原因分析 在深入探讨解决方案之前,我们需要先理解为何会出现内存溢出的情况。通常情况下,Maven构建过程中的内存溢出...

    maven 中引入依赖的包

    本文将深入探讨如何在Maven项目中引入依赖的包,并结合相关源码和工具,帮助开发者更好地理解和使用这一功能。 首先,理解Maven的核心概念——`pom.xml`。这是每个Maven项目的心脏,它定义了项目的配置信息,包括...

    maven中setting阿里云的详细镜像配置

    maven中setting阿里云的详细镜像配置,setting的配置细节 maven中setting阿里云的详细镜像配置,setting的配置细节

Global site tag (gtag.js) - Google Analytics