Maven中如何简便地添加JVM参数到exec:java命令中?

新手上路,请多包涵

使用Maven运行java项目时,如何添加jvm参数?

Maven版本:3.9.9

我们知道可以使用

mvn exec:java -Dexec.mainClass="ClassName" -Dexec.args="arg0 arg1 arg2"

来使用maven运行带有参数的java项目。

那么,如果我的java项目需要一些jvm参数来运行,比如"-Xmx64g -Dorg.slf4j.simpleLogger.defaultLogLevel=debug",我是否有比较方便的方法来编写命令?

我在网上查找了一些资料,目前可能的方法有以下几项:

  1. 在运行项目的终端中设置环境MAVEN_OPTS,在其中设置jvm参数
  2. 在maven根目录中创建jvm.confing,并输入对应jvm参数
  3. 在pom.xml中创建一个新的maven参加,并创建对应的可识别参数字段,利用这些字段传递jvm参数。

这些方法都不是足够方便。对于方法1和方法2,如果我需要连续运行多个不同jvm配置下的java项目,就需要执行许多额外的操作。对于方法3,我需要额外编写一些对应的代码。

我的问题是:

  1. 除了上述方法外,是否有更简单的方法完成对maven运行命令添加jvm参数的方法?是否有已有的插件可以提供更加方便地接口?
  2. maven exec:java为什么没有提供直接传递jvm参数的方法?是否存在一些特殊的设计原因?

参考资料:
StackOverflow: How to set both VM Params and Program args using exec-maven-plugin?
StackOverflow: Using Maven 'exec:exec' with Arguments
StackOverflow: How to add JVM options to program started by mvn spring-boot:run
Baeldung: How to Pass JVM Arguments via Maven
Mojohus: exec:java

阅读 848
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏