当前位置: 首页 > 知识库问答 >
问题:

无法使用gradle生成Spring Boot配置元数据

冯枫涟
2023-03-14

我想通过以下方式生成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配置处理器也有同样的问题,maven可以,但gradle不行。

我使用的插件是java或org。喷气式飞机。科特林。jvm,而不是组织。springframework。boot,但我认为这不是问题所在(对于plugin.springframework.boot,问题仍然存在)。

共有1个答案

姬捷
2023-03-14

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

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;
}

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

参考资料/META-INF/附加spring配置元数据的示例内容。json

{
   "properties": [
      {
         "name": "my.props.prop1",
         "type": "java.lang.String",
         "description": "Prop1 description",
         "defaultValue": "property 1"
      }
    ]
 }
 类似资料:
  • 当使用带有Gradle的OpenAPI生成器时,我希望将性别化的源发送到其他源生成器插件使用的标准目录。类似于Maven生成源的东西。 到目前为止,我还不能这样做,特别是将生成限制为Java源类,而不是整个“原型项目”。 似乎OpenAPI Gradle插件的工作流程与Maven插件的工作流程并不相同。 是否有配置标志来省略所有非java代码的生成,并在“生成的源代码”文件夹(如/out/prod

  • 当我尝试编译我的应用程序时,我得到以下错误: 现在我一直在stackoverflow和其他网站上搜索,我不是唯一一个遇到这个问题的人。我尝试了这个解决方案,也重启了几次程序,并完全重新安装了Android Studio。我仍然得到了同样的错误。我还尝试手动从 文件夹,并手动将最新版本的gradle放入该文件夹。 没有任何帮助。还是会出错。

  • Gradle版本:5.1 Java版本:11 我在gradle文件中定义了以下任务来生成QueryDSL类: 下面是我的依赖项块: 如果我执行'gradlew generateQClasses,我会在日志中看到以下内容: 它失败,错误是文件已经存在。如何配置此任务以覆盖文件(如果存在)? 此外,上面的配置是根项目的配置,它有5个子项目。能够覆盖其中一个子项目中的文件,但不能覆盖其他子项目中的文件(

  • 我使用Maven作为我的构建工具。对于配置文件管理在SpringBoot我使用yml文件。 对于我的SpringBoot应用程序,我设置了以下应用程序-*. yml文件: 我对应的pom。xml配置文件配置: 每当我试图通过Maven打包或运行我的应用程序时: 应用程序运行,但它只会返回默认配置文件(application.yml)运行。每次尝试在任何配置的配置文件下运行应用程序时,我都会获得以下

  • 我有一个项目,它是用gradle 6或更旧的版本构建的。 我检查了gradle 7中关于编译/测试编译问题的其他stakeoverflow讨论,并将所有依赖项从编译/测试编译更改为api/测试实现。 但当我做gradle build时,它仍然不起作用。 它仍然返回名为“compile”的配置 我检查过这个: 使用gradle构建错误找不到方法testCompile() Gradle中的实现、api