- Mastering Apache Maven 3
- Prabath Siriwardena
- 314字
- 2021-08-06 19:46:37
Configuring the heap size
Once you have installed Maven in your system, the next step is to fine-tune it for optimal performance. By default, the maximum heap allocation is 256 - 512 MB (-Xms256m
to -Xmx512m
). This default limit does not work while building a large, complex Java project, and it is recommended that you have at least 1024 MB of maximum heap. If you encounter the java.lang.OutOfMemoryError
error at any point during a Maven build, it is mostly due to the lack of memory. You can use the MAVEN_OPTS
environment variable to set the maximum allowed heap size for Maven at a global level.
The following command will set the heap size in Linux. Make sure that the value set as the maximum heap size does not exceed your system memory of the machine that runs Maven.
$ export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m"
If you are on Microsoft Windows, use the following command:
$ set MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=128m
Here -Xmx
takes the maximum heap size and -XX:MaxPermSize
takes the maximum PermGen size.
Note
Maven runs as a Java process on JVM. As Java proceeds with a build, it keeps on creating Java objects. These objects are stored in the memory allocated to Maven. This area of memory where Java objects are stored is known as heap. Heap is created at the JVM start, and it increases as more and more objects are created up to the defined maximum limit. The -Xms
JVM flag is used to instruct JVM the minimum value it should set at the time it creates the heap. The -Xmx
JVM flag sets the maximum heap size.
Permanent Generation (PermGen) is an area of memory managed by JVM, which stores the internal representations of Java classes. The maximum size of PermGen can be set by the -XX:MaxPermSize
JVM flag.
To learn about the Maven OutOfMemoryError
error, check out the information at this link: https://cwiki.apache.org/confluence/display/MAVEN/OutOfMemoryError.
- ASP.NET Web API:Build RESTful web applications and services on the .NET framework
- Mastering Spring MVC 4
- 技術領導力:程序員如何才能帶團隊
- MATLAB 2020 從入門到精通
- Visual Basic程序設計實驗指導(第4版)
- Rust Essentials(Second Edition)
- Mastering Linux Security and Hardening
- Access 2010中文版項目教程
- Learning AWS
- ASP.NET求職寶典
- Learning Kotlin by building Android Applications
- Node.js應用開發
- Building Microservices with Go
- R語言數據分析從入門到實戰
- MATLAB從入門到精通