无法使用@Value在Spring应用程序中获取Maven project.version属性

杰克·G:

如何在带有@Value注释的Spring Boot应用程序中获取maven project.version属性?

杰克·G:

在对如何在SpringBoot应用程序中获取Maven项目版本进行了一些研究和试验之后,我找不到对我有用的任何东西。

由于类加载器的问题,使用清单肯定是一条烂路,即,一个清单获得了Spring找到的第一个清单,在我的情况下,这不是我的应用程序之一。

我发现的一种解决方案是使用Maven资源插件来“过滤”(替换)资源文件中的属性。在这种情况下是春天application.properties

以下是完成这项工作的步骤。

在pom文件中,使用以下定义激活资源过滤:

<resources>
    <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <includes>
            <include>application.properties</include>
        </includes>
    </resource>
</resources>

application.properties文件中:

[email protected]@
[email protected]@
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;

这里有一个示例项目

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法获得类型为org.gradle.api.Project的项目':app'的未知属性'VERSION_CODE'

如何使用Maven在现有的Spring Boot应用程序中利用属性文件?

Maven $ {project.version}无法正常工作

无法从JUnit的Spring Boot中读取应用程序属性?

无法在Spring Web应用程序中打开属性文件

无法在 SpringBoot 应用程序中使用 @Value 读取属性

Android Studio:“无法获得类型为org.gradle.api.Project的项目的未知属性'VERSION_NAME'”

我无法使用 Angular 中的 Output 和 EventEmitter 在应用程序组件中获取组件(post)的属性

云客户端配置应用程序无法从Config Server Spring Boot获取属性

Angular Project中不覆盖CSS属性

如何在Spring应用程序中获取所有属性的映射?

无法在 Junit 测试中覆盖 Spring-Boot 应用程序属性

为什么JS无法在计算器应用程序中读取value属性?

@Value不提供应用程序属性Spring Boot中的值

使用@Value访问Spring Boot Actuator build.version属性

无法使用应用程序属性值填充输入

Angular Project:如何获取辅助Firebase应用程序实例?

如何使用配置类在 Spring Boot 中为我的应用程序配置属性?

使用IntelliJ在Spring Boot中自定义应用程序属性

如何在Spring Boot应用程序中使用配置(properties / yml)文件中的属性?

使用表达式语言读取Spring XML config应用程序中的系统属性

在本机spring @Query中使用应用程序属性

应用程序侦听器中的Spring Load应用程序属性

在Spring Boot应用程序的应用程序属性文件中使用Jenkins变量

nuspec文件中未声明'Version'属性

错误:[TAG]无法解析变量'$ {project.version}'

如何通过在gradle命令行上传递版本属性来设置project.version?

Xcode中定义的宏CURRENT_PROJECT_VERSION在哪里?

如何在Xcode 8中设置CURRENT_PROJECT_VERSION