Spring Boot 2.2.6通过Maven指定端口启动失败的问题咨询
如何通过Maven指定Spring Boot 2.2.6应用的启动端口
你遇到的问题很常见——直接在Maven命令后加-Dserver.port=8888时,这个参数是传给Maven进程的,而不是Spring Boot应用本身的JVM进程,所以Spring Boot读取不到这个端口配置,还是会用默认的8080。下面给你几种靠谱的解决方法,完全适配Spring Boot 2.2.6版本:
方法1:通过spring-boot.run.jvmArguments传递JVM参数
这是最直接的临时指定方式,把端口参数明确传给Spring Boot应用的JVM:
mvn clean install spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=8888"
spring-boot.run.jvmArguments是Spring Boot Maven插件专门用来传递JVM参数给应用进程的配置项,这样Spring Boot就能正确读取到server.port系统属性了。
方法2:直接设置应用属性(更简洁)
Spring Boot Maven插件支持通过spring-boot.run.xxx直接映射应用的环境属性,所以你也可以简化命令:
mvn clean install spring-boot:run -Dspring-boot.run.server.port=8888
这种方式不需要嵌套-D,更直观,同样能让应用在8888端口启动。
方法3:在pom.xml中固定配置端口
如果你的项目经常需要用固定端口启动,可以直接在pom.xml里配置Spring Boot Maven插件:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.6.RELEASE</version> <configuration> <!-- 固定启动端口为8888 --> <jvmArguments>-Dserver.port=8888</jvmArguments> <!-- 或者用命令行参数方式: <arguments>--server.port=8888</arguments> --> </configuration> </plugin> </plugins> </build>
配置完成后,直接运行mvn clean install spring-boot:run就会自动使用8888端口。如果需要临时改端口,还是可以用方法1或2的命令行参数覆盖这个配置。
内容的提问来源于stack exchange,提问作者Mateusz Sobczak
相关产品推荐
相关产品推荐

