- Maven Essentials
- Prabath Siriwardena
- 344字
- 2021-07-30 10:11:27
Configuring the heap size
Once you have Maven installed in your system, the very next step is to fine-tune it for an optimal performance. By default, the maximum heap allocation is 512 MB, which starts from 256 MB (-Xms256m
to -Xmx512m
). This default limit is not good enough to build a large, complex Java project, and it is recommended that you have at least 1024 MB of the maximum heap.
If you encounter java.lang.OutOfMemoryError
at any point during a Maven build, then it is mostly due to a 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 any Unix-based operating system, including Linux and Mac OS X. Make sure that the value set as the maximum heap size does not exceed your system memory of the machine, which 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 Permanent Generation (PermGen) size.
Note
Maven runs as a Java process on JVM. As it 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 about the minimum value that it should set at the time of creating the heap. The -Xmx
JVM flag sets the maximum heap size.
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.
When the Java virtual machine cannot allocate enough memory to Maven, it could result in an OutOfMemoryError
. To know more about the Maven OutOfMemoryError
, refer to https://cwiki.apache.org/confluence/display/MAVEN/OutOfMemoryError.
- Vue.js 3.x快速入門
- 深入理解Android(卷I)
- Oracle Exadata性能優(yōu)化
- C++面向?qū)ο蟪绦蛟O(shè)計(jì)(微課版)
- 自己動(dòng)手寫Java虛擬機(jī)
- Learning AWS Lumberyard Game Development
- MATLAB實(shí)用教程
- C語言實(shí)驗(yàn)指導(dǎo)及習(xí)題解析
- uni-app跨平臺(tái)開發(fā)與應(yīng)用從入門到實(shí)踐
- 零基礎(chǔ)輕松學(xué)C++:青少年趣味編程(全彩版)
- 程序員的成長課
- Get Your Hands Dirty on Clean Architecture
- 分布式數(shù)據(jù)庫HBase案例教程
- Raspberry Pi開發(fā)實(shí)戰(zhàn)
- SQL Server 2014數(shù)據(jù)庫設(shè)計(jì)與開發(fā)教程(微課版)