获取 JBoss 应用程序的构建时间戳
Get build timestamp on JBoss application
我们在 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
加载文件。检查更多 here.
我们在 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 尝试通过
访问文件时,我得到一个 FileNotFoundExceptionString 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
加载文件。检查更多 here.