java - 获取 JBoss 应用程序的构建时间戳
问题描述
我们在 JBoss 7.2 上有一个 Web 应用程序。现在我想在我的 UI 中显示构建时间戳以进行调试,所以我添加了
- 一个看起来像这样的属性文件:
version=${pom.version}
build.date=${timestamp}
- 在 POM 属性中:
<properties>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
</properties>
在构建时,这会成功生成具有正确值的 .properties 文件,例如
version=0.1-SNAPSHOT
build.date=2021-08-25 12:00
但是,部署后,该属性文件不再可用。当我的前端 bean 尝试通过以下方式访问文件时,我收到 FileNotFoundException
String propertyPath = "src/main/resources/version.properties";
try (InputStream properties = new FileInputStream(propertyPath)) {
Properties prop = new Properties();
prop.load(properties);
}
...
现在我当然可以将属性添加到我的standalone.xml,但我无法在构建期间替换这些值。有关如何使其工作的任何提示?
解决方案
您遇到的问题完全有道理。您正在尝试使用源代码路径读取文件src/main/resources/version.properties
。由于您已经构建了应用程序并从中创建了一个 jar,因此相关文件不再位于此路径下。
因此,您应该尝试使用classloader
. 在此处查看更多信息。
推荐阅读
- string - 如何在 MATLAB 中从变量名数组创建相同的变量?
- flutter - 无法将扫描流中的条形码扫描传递到列表中
- java - 有没有更有效的方法来编写多个 if else?
- .net - System.Net.Mail.SmtpClient 支持什么版本的 TLS?
- database - 外部服务对于 laravel 中的数据库来说太快了
- symfony - 基于 Symfony 表单中的下拉选择从数据库中获取数据
- google-sheets - 如何从 IMPORTDATA 列表中筛选出错误?
- javascript - 有没有办法在 google-cloud-firestore 中的对象数组中搜索具有特定字段的对象
- visual-studio - UpToDateCheckBuilt 不起作用,并且构建始终有效
- typescript - 使用 TypeScript 中的类型定义对象键的前缀