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

2022-03-31 09:14:36 浏览数 (1)

文章目录

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

工程结构

工程结构如下


问题

在子模块

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

代码语言:javascript复制
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-configuration-processorartifactId>
            <optional>trueoptional>
        dependency>

IDEA提示

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

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


问题修复

父pom定义

代码语言:javascript复制
  <dependency>
     <!-- 用于生成自定义的 Spring @ConfigurationProperties 配置类的说明文件 -->
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <version>${spring.boot.version}</version>
  </dependency>

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

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

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

代码语言:javascript复制
  <path>
   <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-configuration-processorartifactId>
      <version>${spring.boot.version}version>
  path>

完整的如下:

代码语言:javascript复制
 <build>
        <pluginManagement>
            <plugins>
                
                
                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-surefire-pluginartifactId>
                    <version>${maven-surefire-plugin.version}version>
                plugin>
                
                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-compiler-pluginartifactId>
                    <version>${maven-compiler-plugin.version}version>
                    <configuration>
                        <annotationProcessorPaths>
                            <path>
                                <groupId>org.projectlombokgroupId>
                                <artifactId>lombokartifactId>
                                <version>${lombok.version}version>
                            path>
                            <path>
                                <groupId>org.mapstructgroupId>
                                <artifactId>mapstruct-processorartifactId>
                                <version>${mapstruct.version}version>
                            path>
                            <path>
                                <groupId>org.springframework.bootgroupId>
                                <artifactId>spring-boot-configuration-processorartifactId>
                                <version>${spring.boot.version}version>
                            path>
                        annotationProcessorPaths>
                    configuration>
                plugin>

                
                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-source-pluginartifactId>
                    <configuration>
                        <attach>trueattach>
                    configuration>
                    <executions>
                        <execution>
                            <phase>compilephase>
                            <goals>
                                <goal>jargoal>
                            goals>
                        execution>
                    executions>
                plugin>

            plugins>
        pluginManagement>
    build>

然后,刷新工程 可以看到

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

非常好。

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

0 人点赞