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

Spring Boot2.5.8升级2.6.2时mainClassName属性未知报错如何修复

报错原因

这个报错是Spring Boot 2.6版本Gradle插件做了不兼容的DSL调整导致的:2.5.x版本中springBoot扩展下的mainClassName属性在2.6版本已经被正式移除,直接沿用旧写法就会抛出未知属性的错误。

修复方案

把旧的主类配置替换为2.6版本支持的写法即可,两种常用方案选一种就行:

  • 在springBoot扩展中配置(最通用)
    替换原有配置为如下写法,注意mainClass是属性对象,需要调用set方法赋值,不能直接用等号接字符串:
    springBoot {
        mainClass.set('com.mir3.service.contactfileparser.Main')
    }
    
  • 配合application插件配置
    如果项目已经应用了Gradle官方的application插件,直接在application块下配置主类即可,Spring Boot插件会自动识别这个配置,不需要在springBoot块重复配置:
    application {
        mainClass = 'com.mir3.service.contactfileparser.Main'
    }
    
2.5.8升级到2.6.2的其他高频兼容点

除了主类配置的变更,还有两个常见踩坑点提前适配,避免升级后启动失败:

  • 2.6版本默认禁止Bean循环依赖,如果启动时抛出循环依赖相关错误,可临时通过配置开启兼容(长期建议从代码层面解耦循环依赖,不要长期依赖这个配置):
    # application.properties配置项
    spring.main.allow-circular-references=true
    
  • 2.6版本Spring MVC默认使用PathPatternParser做路径匹配,如果你用的是低版本Swagger、Knife4j或者自定义过路径匹配逻辑,大概率会出现接口404问题,可临时切回旧的Ant路径匹配策略过渡:
    spring.mvc.pathmatch.matching-strategy=ant_path_matcher
    
  • 如果之前在bootJar、bootWar任务里也配置了mainClassName,同样要改成mainClass.set(xxx)的写法,否则也会报同类未知属性错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.17 16:16:01