Java 如何在maven编译器插件中设置-XX:PermSize=64m?
我无法使用maven编译器插件(v3.2)设置permsize或maxpermsize 我这样试过:Java 如何在maven编译器插件中设置-XX:PermSize=64m?,java,maven,maven-compiler-plugin,Java,Maven,Maven Compiler Plugin,我无法使用maven编译器插件(v3.2)设置permsize或maxpermsize 我这样试过: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <meminitial>1024m</meminitia
<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>
我的另一个尝试是像示例中那样添加它
那么,为什么这个标志无效呢?如果在我将其添加到MVN_OPTS变量时考虑到了它?首先有一个关于 如果fork设置为,则设置要传递给编译器的参数 对。例如:
-Xmaxerrs=1000
-XX:PermSize=128m
这意味着,如果您在构建过程中需要它们,您必须通过MAVEN\u OPTS
执行此操作,或者您可以在.mavenrc
(linux)或mavenrc\u pre.bat
(Windows)中定义它们。来自文档:
-工作
将选项传递给javac调用的java启动器。例如,-J-Xms48m将启动内存设置为48 MB
基于上述情况:
<compilerArgs>
<arg>-J-XX:PermSize=128m</arg>
<arg>-J-XX:MaxPermSize=256m</arg>
</compilerArgs>
-J-XX:PermSize=128m
-J-XX:MaxPermSize=256m
您只需添加
导出MAVEN_OPTS=-Xmx512m
在~/.bash_配置文件中,这些标志是JVM参数而不是编译器参数,不是吗?您绝对确定JVM支持这些参数吗?Hotspot还是OpenJDK?JDK1.7是否可能不支持这些标志?!不可能!添加CompilerArg后,我仍然会收到错误。如果我将这些值添加到默认的VM参数中,那么它就会工作。请注意fork标志!是的,我以前切换过这个值。还是一样的错误。谢谢你,我很遗憾。这也没用。唯一可能的事情是将它添加到Eclipse中的maven_opts或VM参数中。仅将其保存到maven编译器插件没有帮助。
<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>
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
<compilerArgs>
<arg>-J-XX:PermSize=128m</arg>
<arg>-J-XX:MaxPermSize=256m</arg>
</compilerArgs>