SpringBoot - 子模块下spring-boot-configuration-processor不生效问题

Posted 小小工匠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot - 子模块下spring-boot-configuration-processor不生效问题相关的知识,希望对你有一定的参考价值。

文章目录


工程结构

工程结构如下


问题

在子模块
这个自定义的starter中,引入了绑定提示的spring-boot-configuration-processor

      <!--‐导入配置文件处理器,配置文件进行绑定会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

IDEA提示

且构建的包中并没有如下这个文件


导致我们在使用自定义的配置的时候,没有 提示,非常的难受 。


问题修复

父pom定义

  <dependency>
     <!-- 用于生成自定义的 Spring @ConfigurationProperties 配置类的说明文件 -->
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <version>$spring.boot.version</version>
  </dependency>

之模块直接使用,无需引入版本

      <!--‐导入配置文件处理器,配置文件进行绑定会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

然后父pom中 maven-compiler-plugin内的annotationProcessorPaths中添加相应path

  <path>
   <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <version>$spring.boot.version</version>
  </path>

完整的如下:

 <build>
        <pluginManagement>
            <plugins>
                <!-- maven-surefire-plugin 插件,用于运行单元测试。 -->
                <!-- 注意,需要使用 3.0.X+,因为要支持 Junit 5 版本 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>$maven-surefire-plugin.version</version>
                </plugin>
                <!-- maven-compiler-plugin 插件,解决 Lombok + MapStruct 组合 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>$maven-compiler-plugin.version</version>
                    <configuration>
                        <annotationProcessorPaths>
                            <path>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                                <version>$lombok.version</version>
                            </path>
                            <path>
                                <groupId>org.mapstruct</groupId>
                                <artifactId>mapstruct-processor</artifactId>
                                <version>$mapstruct.version</version>
                            </path>
                            <path>
                                <groupId>org.springframework.boot</groupId>
                                <artifactId>spring-boot-configuration-processor</artifactId>
                                <version>$spring.boot.version</version>
                            </path>
                        </annotationProcessorPaths>
                    </configuration>
                </plugin>

                <!--提供source-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <configuration>
                        <attach>true</attach>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>compile</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

            </plugins>
        </pluginManagement>
    </build>

然后,刷新工程 可以看到

我们搞个package ,看下导出来的jar


非常好。

然后发布到nexus ,我们新起个测试项目引用下试试

问题得到解决

以上是关于SpringBoot - 子模块下spring-boot-configuration-processor不生效问题的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot - 子模块下spring-boot-configuration-processor不生效问题

1.1springboot 多模块项目开发

SpringBoot子模块相互依赖打包

Springboot--maven命令子模块单独打包

聚合项目,SpringBoot无法扫描子模块Controller问题

在springBoot框架下使用druid+myBatisPlus实现多数据源(不同模块不同数据源)