我有2个配置文件可能会或可能不会一起用于运行一组测试.它们每个都需要不同的vmarg来运行,但如果它们一起使用,可以将它们相互附加.
我正在寻找的是一种将argLine设置为其当前值加上我设置的串联的方法.
我希望它会如此简单
<argLine>${argLine} -DnewVMArg</argLine>
Run Code Online (Sandbox Code Playgroud)
我能做些类似的事情来实现这一目标吗?
我试图修复它,导致maven陷入递归循环.它记录在下面.
我最近的尝试是<my.argLines></my.argLines>全局定义属性,然后在配置文件中修改它.
在每个配置文件中,在属性块中,我将属性覆盖为:
<my.argLines>${my.argLines} -myUniqueToProfileArgs</my.argLines>
Run Code Online (Sandbox Code Playgroud)
在配置文件的每个surefire配置中,我设置<argLines>为:
<argLines>${my.argLines}</argLines>
Run Code Online (Sandbox Code Playgroud)
这在逻辑上适合我,但它评估的方式显然不会啮合.
我无法使用 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>
Run Code Online (Sandbox Code Playgroud)
这导致错误
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
Run Code Online (Sandbox Code Playgroud)
我的另一个尝试是在示例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>
Run Code Online (Sandbox Code Playgroud)
导致同样的错误:
Caused by: org.codehaus.plexus.compiler.CompilerException: invalid flag: -XX:MaxPermSize
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:191)
at …Run Code Online (Sandbox Code Playgroud)