You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gradle bootRun启动Spring Boot应用指定端口失败,该如何修改?

如何通过Gradle命令行指定Spring Boot应用的端口?

我在build.gradle文件中包含以下代码片段:

buildscript { 
    ext { springBootVersion = '1.5.12.RELEASE' } 
    repositories { mavenCentral() } 
    dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } 
} 
.. 
bootRun { 
    systemProperties = System.properties 
} 
..

我使用命令./gradlew bootRun -PjvmArgs=-Dserver.port=8090启动应用,但该命令无法生效。请问需要如何修改配置或命令,才能像在application.properties中那样指定端口启动应用?

这是个很常见的Spring Boot + Gradle配置问题,我来给你几个可行的解决方案:

方法1:调整bootRun配置,支持传入jvmArgs参数

你的当前bootRun任务配置只是把系统属性传递给应用,但并没有处理通过-P传入的jvmArgs参数。可以修改build.gradle中的bootRun任务,让它读取这个参数并添加到JVM启动参数中:

bootRun {
    systemProperties = System.properties
    // 读取-P传入的jvmArgs参数,拆分后添加到JVM参数列表
    if (project.hasProperty('jvmArgs')) {
        jvmArgs project.jvmArgs.split(' ')
    }
}

修改完成后,你原来的启动命令./gradlew bootRun -PjvmArgs=-Dserver.port=8090就能正常生效了。

方法2:直接传递系统属性(无需修改build.gradle)

如果不想改动配置文件,你可以直接把系统属性参数放在--后面,这样Gradle会把这些参数传递给Spring Boot应用,而不是自己处理:

./gradlew bootRun -- -Dserver.port=8090

这种方式更简洁,适合临时指定端口的场景,不需要修改任何配置。

方法3:使用Spring Boot命令行应用参数

Spring Boot本身支持直接通过命令行传递应用配置参数,格式为--参数名=值,同样需要放在--后面:

./gradlew bootRun -- --server.port=8090

这种方式的效果和在application.properties中配置完全一致,因为Spring Boot会优先读取命令行传入的应用参数。

内容的提问来源于stack exchange,提问作者maciejka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:39:54