文章目录

  • 工程结构
  • 问题
  • 问题修复


工程结构

工程结构如下


问题

在子模块
这个自定义的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不生效问题