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

继承spring-boot-starter-parent时如何无需指定spring-boot-configuration-processor版本

解决方案

问题根因

Maven设计中,maven-compiler-plugin的annotationProcessorPaths配置节点内的依赖,不会自动继承项目父依赖(包括spring-boot-starter-parent)中dependencyManagement托管的版本,因此直接省略版本号会触发版本为空的报错。

可选方案

  • 方案一:直接声明为项目依赖(最简便)
    你不需要在maven-compiler-plugin中单独配置注解处理器路径,只需要在子模块的dependencies节点下添加该依赖,指定scope为provided即可自动继承父依赖托管的版本:
<dependencies>
    <!-- 你的其他业务依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

provided scope可以保证该依赖不会被打包到最终产物中,和单独配置注解处理器路径的效果完全一致。

  • 方案二:复用Spring Boot内置版本属性
    如果你必须在annotationProcessorPaths中配置该依赖(比如需要同时配置多个注解处理器、需要调整处理器顺序),可以直接使用spring-boot-starter-parent内置的${spring-boot.version}属性作为版本号,不需要硬编码版本:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <annotationProcessorPaths>
            <path>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <version>${spring-boot.version}</version>
            </path>
            <!-- 其他注解处理器配置 -->
        </annotationProcessorPaths>
    </configuration>
</plugin>

该属性是Spring Boot父依赖统一管理的全局版本号,升级Spring Boot版本时会自动同步,不需要手动维护。

  • 方案三:根pom统一声明版本(多模块项目推荐)
    如果有多个子模块都需要用到该注解处理器,可以在根pom的dependencyManagement节点中统一声明,所有子模块引用时都可以省略版本号:
<!-- 根pom.xml的dependencyManagement节点 -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>${spring-boot.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:57:02