spring-configuration-metadata.json 没有为多模块项目正确生成

Posted

技术标签:

【中文标题】spring-configuration-metadata.json 没有为多模块项目正确生成【英文标题】:spring-configuration-metadata.json is not generated properly for multi-module project 【发布时间】:2022-01-23 23:38:28 【问题描述】:

我已经创建了多模块项目:

(pom)root (罐子)libModule (jar)appModule,在依赖项中有libModule

appModule pom 有依赖:

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

它还包含自己的@ConfigurationProperties 类:

    @ConfigurationProperties(prefix = "service.test")
    @Component
    @Data
    public class Conf 
        String prop;
    

编译这个模块产生下一个正确的spring-configuration-metadata.json文件:


  "groups": [
    
      "name": "service.test",
      "type": "org.test.app.Conf",
      "sourceType": "org.test.app.Conf"
    
  ],
  "properties": [
    
      "name": "service.test.prop",
      "type": "java.lang.String",
      "sourceType": "org.test.app.Conf"
    
  ],
  "hints": []

我的 Idea IDE 成功地在 application.yml 中突出显示了我的这个属性

但我的libModule 中还有额外的@ConfigurationProperties 课程:

@ConfigurationProperties(prefix = "service.a")
@Setter
@Getter
public class ServiceAProperties 
    String url;


我尝试使用下一个代码将此类包含到 appModule 中:


@SpringBootApplication
@ConfigurationPropertiesScan(basePackageClasses = 
        ServiceAProperties.class
)
public class Application 
    public static void main(String[] args) 
        SpringApplication.run(ConfigServerApplication.class, args);
    

并尝试了不同的方法将其包含到 json 中,但它没有出现在那里。只使用自己的模块Conf

如何包含来自其他模块的配置属性以生成正确的 json,包括两个模块的属性

如果需要一些额外的信息,请询问

【问题讨论】:

【参考方案1】:

好的。我的问题的答案是 - 我必须单独为 libModule 生成 json。应该以这种方式工作

【讨论】:

以上是关于spring-configuration-metadata.json 没有为多模块项目正确生成的主要内容,如果未能解决你的问题,请参考以下文章