Java 如何在maven编译器插件中设置-XX:PermSize=64m?

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

我无法使用maven编译器插件(v3.2)设置permsize或maxpermsize

我这样试过:

<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>