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

Spring项目创建Maven子模块后application.properties被忽略问题解决

解决Spring Boot多模块Maven中application.properties被忽略的问题

我最近碰到一个挺棘手的Spring Boot多模块Maven问题,折腾了好一会儿才找到根源,跟大家分享下整个过程:

问题场景

最开始用Spring Initializr创建了一个单模块Spring Boot项目,在application.properties里设置了server.port=9090,启动完全正常,端口也符合预期。

后来为了拆分代码,在IntelliJ里给项目加了一个Maven子模块(叫common,就是个纯Maven结构,啥业务代码和配置都没加),结果怪事发生了:主项目启动时直接忽略了application.properties,默认用8080端口启动,我的配置完全没生效。

排查过程

一开始以为是子模块的配置冲突,但common模块啥都没加,这可能性直接排除。后来一步步试,终于发现问题出在子模块的packaging配置上:

  • 我之前给所有子模块都设置了<packaging>pom</packaging>,结果主项目的资源文件(包括application.properties)根本不会被加载
  • 试着把子模块的packaging标签删掉,主项目的配置倒是正常生效了,但执行mvn clean install时又报错,说找不到其他子模块的jar依赖
  • 最后才反应过来:我居然把父模块和子模块的打包方式都设成了pom,这完全是错的!

解决方案

只保留父模块的packaging配置为pom,把所有子模块的<packaging>pom</packaging>配置全部移除。

这么调整之后:

  • 主项目启动时正常读取application.properties,用9090端口启动
  • 执行mvn clean install也能顺利完成,子模块的依赖也能正常被识别和引用

总结

划个重点:Maven多模块项目中,只有父模块需要设置packaging为pom,子模块不需要额外配置这个属性(默认就是jar打包,刚好满足子模块作为依赖被主项目引用的需求)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 18:58:11