maven命令启动springboot 1.x版本 限制最大内存

如果用mvn命令,启动 springboot 1.x版本的项目,并且想限制最大内存,下面写法往往不成功,如下,最大内存并不会被限制在512M。

 这个写法应该是只适用于springboot2.x版本。

mvn spring-boot:run -Dmaven.test.skip=true -Dspring-boot.run.jvmArguments="-Xms128m -Xmx512m"

解决办法:修改maven安装目录bin下的启动命令 mvn.cmd,在其中的java启动参数MAVEN_DEBUG_OPTS后面,加入行(编辑器里寻找'MAVEN_DEBUG_OPTS' 来快速定位):

  -D(VMD-Z) ^
  -Xms128M ^
  -Xmx512M ^

其中-D标识当前启动的maven程序的特征,这样可以在“任务管理器”里的“命令行”列里可以观察的更清楚,尤其是当有多个java/maven程序时候。其它2个不多说了;

如果要针对不同的应用,做不同的内存的限制,则可以将mvn.cmd复制多份,去加载不同项目。

但是如果这个maven进程,启动了额外的一个子进程(child process),那么子进程的内存消耗,就不受这个maven父进程(launcher)的约束了,这时候,就要把整个项目打成一个jar包(省略掉luncher),再调用 :

java -Xms100m -Xmx300m -jar target\xxx.jar

--------maven+springboot父子进程(child process)----可以看出,用一个 Launcher .class来启动了 springboot。

父进程:

"D:\jdk1.8\bin\java.exe" 

 -classpath "D:\apache-maven-3.5.2\bin\..\boot\plexus-classworlds-2.5.2.jar"
"-Dclassworlds.conf=D:\apache-maven-3.5.2\bin\..\bin\m2.conf"
"-Dmaven.home=D:\apache-maven-3.5.2\bin\.."
"-Dlibrary.jansi.path=D:\apache-maven-3.5.2\bin\..\lib\jansi-native"
"-Dmaven.multiModuleProjectDirectory=D:\my-springboot-project\"
org.codehaus.plexus.classworlds.launcher.Launcher -f pom-vdm-A.xml spring-boot:run -Dmaven.test.skip=true -Drun.profiles=230VdmA

------------------------

子进程:

D:\jdk1.8\jre\bin\java.exe -cp D:\my-springboot-project\target\classes;D:\apache-maven-3.5.2\repo\org\apache\commons\commons-lang3\3.4\commons-lang3-3.4.jar;D:\apache-maven-3.5.2\repo\com\zaxxer\HikariCP-java6\2.3.13\HikariCP-java6-2.3.13.jar;D:\apache-maven-3.5.2\repo\com\fasterxml\jackson\core\jackson-annotations\2.8.0\jackson-annotations-2.8.0.jar;D:\apache-maven-3.5.2\repo\org\jboss\logging\jboss-logging\3.3.1.Final\jboss-logging-3.3.1.Final.jar;D:\apache-maven-3.5.2\repo\com\alibaba\fastjson\1.2.62\fastjson-1.2.62.jar;...   com.my.Application --spring.profiles.active=230VdmA

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值