【问题标题】:Running mvn install results in OOM errors运行 mvn install 导致 OOM 错误
【发布时间】:2023-03-18 01:35:01
【问题描述】:

如果我正在使用以下方式构建投影:

mvn 安装

我看到以下内容:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:


The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: PermGen space

我不确定在哪里更新我的 java 选项?

我在 ubuntu 上运行它。

【问题讨论】:

标签: java maven


【解决方案1】:

如果你不喜欢依赖某个人的环境,你可以指定 fork 编译器插件并为其分配足够的内存。

我建议您在父 POM 项目的 <pluginManagment> 部分中实际执行此操作

<build>
  ...
  <pluginManagment>
    ...
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.3.2</version>
      <configuration>
        ...

        <!-- Memory management -->
        <fork>true</fork>
        <meminitial>128m</meminitial>
        <maxmem>512m</maxmem>

        ...
      </configuration>
    </plugin>
    ...
  </pluginManagment>
  ...
</build>

【讨论】:

  • 所以这会启动一个新的 jvm,而不是使用操作系统默认使用的 jvm?
  • 对于子孙后代,您希望做到这一点。它使顺利登录变得容易得多,因为 git clone 设置 maven 环境而无需接触 PC。它还使配置在解决构建问题时易于访问(pom 是查看堆栈跟踪的第一个位置,因此从技术上讲,它是第二个查看位置)。
【解决方案2】:

调整您的 Maven 选项。通常这是在 /etc/mavenrc、${HOME}/.mavenrc 或您的 Windows 环境属性对话框中设置的。

export MAVEN_OPTS="-Xmx512M -XX:MaxPermSize=512M" 

对某些人有效,您可能需要提高数字(取决于您的情况)

第一个选项“-Xmx512M”配置最大内存,而第二个选项“-XX:MaxPermSize=512M”允许 PermGen 空间增长到(在这种情况下)最大内存。

【讨论】:

  • 投了反对票,因为虽然它有效,但在 PC 之间移动时,任何遵循此建议的项目都会面临风险。
猜你喜欢
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 2020-08-29
相关资源
最近更新 更多