首页 > 解决方案 > 无法使用 gradle 生成 Spring Boot 配置元数据

问题描述

我想用这种方式生成 Spring Boot 配置元数据:

配置元数据注释处理器设置

在 Maven 中,没关系:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

但在 gradle 中,没有生成:

dependencies {
    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
}

有同样的问题spring-boot-configuration-processor,maven 可以,但 gradle 不行。

我使用的插件 is javaor org.jetbrains.kotlin.jvm, not org.springframework.boot,但我不认为这是问题所在(使用 plugin org.springframework.boot,问题仍然存在)。

标签: javaspring-bootmavenkotlingradle

解决方案


除了您提到的步骤之外,您还需要添加一个类映射。像下面的东西。

import lombok.Data;    
import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "my.props")
@Data
public class MyProperties {

  /**
   * Prop1 description.
   */
   private String prop1;

   /**
   * Prop2 description.
   */
   private String prop2;
}

添加一个没有道具的类是可以的,但它是必需的。

resources/META-INF/additional-spring-configuration-metadata.json 的示例内容

{
   "properties": [
      {
         "name": "my.props.prop1",
         "type": "java.lang.String",
         "description": "Prop1 description",
         "defaultValue": "property 1"
      }
    ]
 }

推荐阅读