执行Spring Boot的mvn package时自动启动应用如何禁用?
问题解答
是不是spring-boot-maven-plugin导致的?
这个现象确实和spring-boot-maven-plugin相关,但核心原因是Maven默认的package阶段会先执行test阶段——如果你的项目里有带@SpringBootTest注解的测试类,这类测试会启动Spring应用上下文,进而触发数据源连接操作。而spring-boot-maven-plugin本身的repackage目标(package阶段默认绑定的目标)不会启动应用,只是完成可执行jar的重新打包。
如何禁用打包时的应用启动?
有两种直接的解决方式:
打包时跳过测试阶段
在执行打包命令时添加参数,跳过测试的执行:mvn package -DskipTests如果连测试代码的编译都想跳过,可以用:
mvn package -Dmaven.test.skip=true修改插件配置固定跳过测试
要是不想每次都加命令行参数,可以在pom.xml的spring-boot-maven-plugin中配置,强制跳过测试相关的启动逻辑:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build>不过更推荐第一种命令行参数的方式,避免影响日常的测试执行流程。
内容的提问来源于stack exchange,提问作者Stefano Maglione
相关产品推荐
相关产品推荐

