一尘不染

如何使用Gradle和Spring Boot捕获构建信息

spring-boot

我试图version使用Spring Boot和Gradle 访问构建信息值,例如在Java主应用程序中。

我找不到任何文档/有关如何配置

  • build.gradle
  • application.yml (如果需要的话)
  • Java main class

有人可以帮忙提供上述文件的小代码示例。

在我的build.gradle文件中,将包含version条目,因此如何使用Spring Boot和Gradle 将其输入Java主类。

build.gradle

version=0.0.1-SNAPSHOT

我尝试添加

build.gradle

apply plugin: 'org.springframework.boot'

springBoot {    
    buildInfo() 
}

buildInfo()在Intellij中无法将其识别为关键字

在我的Java主类中,我具有以下内容:

public class MyExampleApplication implements CommandLineRunner {
    @Autowired
    private ApplicationContext context;

    public static void main(String[] args) {
        SpringApplication.run(MyExampleApplication.class, args);
    }

    @Override
    public void run(String[] args) throws Exception{
        Environment env = (Environment) context.getBean("environment");
        displayInfo(env);
    }

    private static void displayInfo(Environment env) {
       log.info("build version is <" + env.getProperty("version")     
    }

但是,当我运行此命令时-的输出env.getProperty("version")显示为null


阅读 285

收藏
2020-05-30

共1个答案

一尘不染

Spring Boot BuildProperties使用生成的信息自动配置Bean buildInfo()

因此要获取信息使用context.getBean(BuildProperties.class).getVersion();

2020-05-30