4

maven-compiler-plugin (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>

エラーになるもの

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

私の他の試みは、例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>

まったく同じエラーが発生します:

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

では、なぜこのフラグは無効なのですか? MVN_OPTS 変数に追加するときに適切に考慮される場合は?

4

3 に答える 3

1

まず、ドキュメントのパラメータに関するヒントがあります

fork が true に設定されている場合に、コンパイラに渡される引数を設定します。例:

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

つまり、ビルドにそれらが必要な場合は、経由でこれを行う必要があるか、 (Linux) または(Windows)MAVEN_OPTSで定義できます。.mavenrcmavenrc_pre.bat

于 2014-11-20T09:13:04.420 に答える
0

追加するだけです

export MAVEN_OPTS=-Xmx512m

~/.bash_profile に

于 2014-12-03T06:26:51.057 に答える