gpt4 book ai didi

java - 如何从 Spring Boot War 应用程序访问 gradle.properties 文件值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:59 24 4
gpt4 key购买 nike

我想从我的 Spring Boot 应用程序根目录中的 gradle.properties 文件访问一个值。 (为了在首页显示项目的版本。)

我正在构建一场 war ,将我的 Spring Boot 应用程序部署到服务器,并使用外部 application.properties 文件 ( #9 on this list ) 所以 this solution不会为我工作。

我试过了 this solution ,但是我将 gradle.properties 文件放在 war 中的任何地方(我已经尝试了该目录结构中的每个可能位置),我无法使用 this method 访问它.

我该怎么做?

最佳答案

这是在上述限制条件下最终为我工作的:

一句话总结

为了在我的部署管道(gradle build -> war -> embedded tomcat)和开发(IntelliJ)中工作,我需要一个虚拟属性文件用于开发并在 gradle 构建期间复制实际属性文件.

代码

./gradle.properties

version=x.x.x

./src/main/resources/my-project.properties

version=development

./build.gradle

war {
rootSpec.exclude("**/my-project.properties")
from('.') {
include 'gradle.properties'
into('WEB-INF/classes')
rename('gradle.properties', 'my-project.properties')
}
}

./src/main/java/com/company/version/VersionComponent.java

private String getVersion() {
String propertyVersion = "";
Properties properties = new Properties();
InputStream input = null;
try {
input = VersionComponent.class.getClassLoader().getResourceAsStream("my-project.properties");
properties.load(input);
propertyVersion = properties.getProperty("version");
} catch (IOException ex) {
ex.printStackTrace();
}
return propertyVersion;
}

关于java - 如何从 Spring Boot War 应用程序访问 gradle.properties 文件值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38377797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com