【Quarkus】quarkus:dev启动时指定JVM参数

比如我要指定如下jvm启动参数,在idea中要如何配置呢?

-Xmx70m -Xms10m -Djava.net.useSystemProxies=true -XX:NativeMemoryTracking=detail


答案:

参考来源: Quarkus - how to provide java params to running app from maven runner?

  • 第一种方法

启动的时候指定jvm参数

mvn quarkus:dev -Djvm.args="-Xmx70m -Xms10m -Djava.net.useSystemProxies=true -XX:NativeMemoryTracking=detail"

如果你是使用IntelliJ IDEA,可以参考以下方式设置启动参数。
Edit Configuration - Runner - VM Optinos
填入以下值:

-Djvm.args="-Xmx70m -Xms10m -Djava.net.useSystemProxies=true -XX:NativeMemoryTracking=detail"

可以看到,使用-Djvm.args传入了jvm参数

  • 第二种方法
    在maven项目中,编辑pom文件的properties传入
<project ...>
    ...
    <properties>
        <jvm.args>-Dquarkus.datasource.url=...</jvm.args>
    </properties>
    ...
</project>
  • 第三种方法
    在maven项目中,设置quarkus编译插件配置传入
<project ...>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>dev</goal>
                        </goals>
                        <phase>...</phase>
                    </execution>
                </executions>
                <configuration>
                    <jvmArgs>-Dquarkus.datasource.url=...</jvmArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

题外话

值得一提的是,同时通过三种方法设置并不会同时生效,而是会相互覆盖,优先级是 3 > 1 > 2。3的优先级最大让我感觉有些反直觉,我个人推荐使用第二种方法设置项目里通用的配置,这样一来,如果有某位开发者想临时变更jvm参数,只需要在他的启动参数设置就可以覆盖通用的配置,而不会出现3这种个人无法覆盖的情况。

posted @ 2023-11-10 14:54  小小记录本  阅读(72)  评论(0编辑  收藏  举报