
在对如何在SpringBoot应用程序中获取Maven项目版本进行了一些研究和试验之后,我找不到适合我的任何东西。
由于类加载器的问题,使用清单绝对是一条烂路,即,一个清单获得了Spring找到的第一个清单,在我的情况下,这不是我的应用程序之一。
我发现的一种解决方案是使用Maven资源插件来“过滤”(替换)资源文件中的属性。在这种情况下是spring
application.properties。
以下是完成这项工作的步骤。
在pom文件中,使用以下定义激活资源过滤:
<resources> <resource> <filtering>true</filtering> <directory>src/main/resources</directory> <includes> <include>application.properties</include> </includes> </resource></resources>
在
application.properties文件中:
application.name=@project.artifactId@build.version=@project.version@build.timestamp=@timestamp@
注意@ property @而不是$ {property}。 在
application.properties文件中。
该
spring-boot-starter-parentPOM重新定义了标准的
${}分隔符为@:
<resource.delimiter>@</resource.delimiter><!-- delimiter that doesn't clash with Spring ${} placeholders --><delimiters> <delimiter>${resource.delimiter}</delimiter></delimiters>然后可以使用以下方式在Spring中访问这些属性
@Value:
@Value("${application.name}")private String applicationName;@Value("${build.version}")private String buildVersion;@Value("${build.timestamp}")private String buildTimestamp;欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)