How to set -XX: PermSize = 64 m in maven-compiler-plugin?

I could not install permsize or maxpermsize using maven-compiler-plugin (v3.2).

I tried like this:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <meminitial>1024m</meminitial> <maxmem>2024m</maxmem> <compilerArgument>-XX:PermSize=128m</compilerArgument> </configuration> </plugin> 

This results in an error.

 Caused by: org.codehaus.plexus.compiler.CompilerException: invalid flag: -XX:MaxPermSize=256m -XX:PermSize=128m at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:191) at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169) at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:785) ... 22 more Caused by: java.lang.IllegalArgumentException: invalid flag: -XX:MaxPermSize=256m -XX:PermSize=128m at com.sun.tools.javac.api.JavacTool.processOptions(JavacTool.java:231) at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:199) at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68) at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:115) ... 24 more 

My other attempt was to add it, as in the example http://maven.apache.org/plugins/maven-compiler-plugin/examples/pass-compiler-arguments.html

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <meminitial>1024m</meminitial> <maxmem>2024m</maxmem> <compilerArguments> <Xms>128m</Xms> <Xmx>1024m</Xmx> <XX:MaxPermSize>256m</XX:MaxPermSize> <XX:PermSize>128m</XX:PermSize> </compilerArguments> </configuration> </plugin> 

Resulting error:

 Caused by: org.codehaus.plexus.compiler.CompilerException: invalid flag: -XX:MaxPermSize at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:191) at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169) at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:785) ... 22 more Caused by: java.lang.IllegalArgumentException: invalid flag: -XX:MaxPermSize at com.sun.tools.javac.api.JavacTool.processOptions(JavacTool.java:231) at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:199) at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68) at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:115) ... 24 more 

so why is this flag invalid? If it is gracefully taken into account, when do I add it to the MVN_OPTS variable?

+3
source share
3 answers

From javac documentation:

-Joption Skip the java launcher option invoked by javac. For example, -J-Xms48m sets the boot memory to 48 megabytes.

Based on the foregoing:

 <compilerArgs> <arg>-J-XX:PermSize=128m</arg> <arg>-J-XX:MaxPermSize=256m</arg> </compilerArgs> 
+4
source

First, thereโ€™s a hint regarding the options in the documents

Sets the arguments to pass to the compiler if fork is set to true. Example:

 <compilerArgs> <arg>-Xmaxerrs=1000</arg> <arg>-XX:PermSize=128m</arg> </compilerArgs> 

which means that if you need it, you must do it either through MAVEN_OPTS , or you can define them in .mavenrc (linux) or mavenrc_pre.bat (Windows).

+1
source

You can just add

export MAVEN_OPTS=-Xmx512m

in your ~ / .bash_profile

0
source

Source: https://habr.com/ru/post/1240415/


All Articles