java – 在Spring Boot Starter中获取ArtifactId和Version

我目前正在开发一个Spring Boot Starter,它将托管Restful Web服务,其中包含一些有关正在运行的应用程序的元数据.

我无法从mainfest文件提取artifactId和versionId.我相信我的问题是在主Test测试应用程序之前加载了自动配置类,因此尚未发现清单.如果我从错误的角度接近问题,我不确定我的逻辑是否正确.

我最初遵循以下tutorial进行设置.

这给了我3个独立的项目

没有上下文的通用Spring服务
这些服务的AutoConfiguration项目
Spring Boot启动器

我将启动器与测试项目配对作为最终结果.

目前,maven正在与Spring Boot一起使用以生成清单文件.

Implementation-Title:MyExampleProjectWithCustomStarter
实现版本:0.0.1-SNAPSHOT
Archiver-版本:Plexus Archiver
内置:mcf
Implementation-vendor-Id:com.coolCompany
Spring-Boot-Version:1.5.4.RELEASE
实施 – 供应商:Pivotal Software,Inc.
Main-Class:org.springframework.boot.loader.JarLauncher
Start-Class:com.coolcompany.SpringBootExampleApplication
Spring-Boot-Classes:BOOT-INF / classes /
Spring-Boot-Lib:BOOT-INF / lib /
创建者:Apache Maven 3.5.0
Build-Jdk:1.8.0_131
Implementation-URL:http:// someurl

但是,当我尝试从我的通用服务包中找到Example项目的清单文件时,我找不到该文件.

  private String getApplicationVersion(String applicationName,List

当前清单实施标题:

Spring Boot Web Starter
    Spring Boot Starter
    春季启动
    Spring Boot AutoConfigure
    Spring Boot Logging Starter
    空值
    空值
    JCL-过SLF4J
    空值
    log4j的环比SLF4J
    空值
    Spring Boot Tomcat Starter
    Apache Tomcat
    Apache Tomcat
    Apache Tomcat
    冬眠验证器
    空值
    JBoss日志记录3
    同学
    杰克逊 – 数据绑定
    杰克逊的注解
    杰克逊核心
    弹簧网
    春天的AOP
    弹簧豆
    春天上下文
    弹簧webmvc
    弹簧表达
    弹簧启动执行器启动器
    弹簧启动执行器
    空值
    ** MyCustom-spring-boot-starter
    ** MyGenericSpringService
    空值
    空值
    空值
    度量核心
    用于度量标准的JVM集成
    空值
    空值
    杰克逊数据类型:JSR310
    ** MyService-spring-boot-autoconfigure
    SLF4J的API
    弹簧核心

**缺少MyExampleProjectWithCustomStarter

清单记录数:44

最佳答案
嘿,经过多方努力,我发现了一个非常简单的答案. (这是spring-boot-actuator获取信息的方式)

Spring Boot Maven插件配备了build-info目标.只要在主项目中触发此目标,Spring就会有一个BuildProperties类,您可以接收信息.

            

您可以访问启动器中的属性,如:

@Autowired
BuildProperties buildProperties;

...
buildProperties.getArtifact();
buildProperties.getVersion();

您甚至可以从插件中指定其他属性.有关更多详细信息,请参阅插件文档:
https://docs.spring.io/spring-boot/docs/current/maven-plugin/build-info-mojo.html

不幸的是,我从来没有完全理解为什么我无法访问正确的清单,但这应该有助于其他任何人试图解决这个问题.

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...