Maven配置JVM参数
maiaimei 2023/6/17 Maven
Maven运行配置JVM参数
Windows下添加环境变量
MAVEN_OPTS="-Xms1024m -Xmx1024m -Xss1m"
Linux下可修改.profile或者.bash_profile文件,并做如下设置:export MAVEN_OPTS="-Xms1024m -Xmx1024m -Xss1m"
(注意:这里需要使用双引号或者单引号) 注意:通过MAVEN_OPTS方式设置的JVM参数对于fork出的子进程是无效的,所以对于通过mvn test来运行测试用例,需要单独配置。为Maven fork出的新的子进程配置JVM参数(比如通过命令行mvn test运行测试用例时)
Maven运行测试用例时,是通过调用maven-surefire-plugin插件并fork一个子进程来执行用例的,这个插件的
surefire:test
命令会默认绑定Maven执行的test阶段mvn test
,可以在surefire插件的配置中添加JVM参数。<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- pretest:每一个测试创建一个新进程,为每个测试创建新的JVM是单独测试的最彻底方式,但也是最慢的,不适合hudson上持续回归。 once:在一个进程中进行所有测试。once为默认设置,在Hudson上持续回归时建议使用默认设置。 always:在一个进程中并行的运行脚本,Junit4.7以上版本才可以使用,surefire的版本要在2.6以上提供这个功能,其中 threadCount:执行时,指定可分配的线程数量。只和参数parallel配合使用有效。默认:5。 --> <forkMode>pertest</forkMode> <!-- 配置JVM参数 --> <argLine>-Xms1024m -Xmx1024m -Xss1m</argLine> <systemPropertyVariables> <java.io.tmpdir>${project.build.directory}</java.io.tmpdir> <forkedProcessTimeoutInSeconds>3600</forkedProcessTimeoutInSeconds> <java.awt.headless>true</java.awt.headless> </systemPropertyVariables> <trimStackTrace>false</trimStackTrace> <skipTests>true</skipTests> </configuration> </plugin>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21测试指定类或方法:
# 测试指定类 mvn -Dtest=FileInputStreamTest test # 测试指定方法(只能支持Junit 4.x和TestNG) mvn -Dtest=FileInputStreamTest#test_delete_01 test
1
2
3
4