我想在JSF应用程序的页脚上显示构建版本和构建日期。这些页面是XHTML。我正在寻找从pom.xml或其他工件中获取信息的方法。
我发现以下使用maven-replace插件。 http://www.vineetmanohar.com/2010/09/how-to-display-maven-project-version-in-your-webapp/
您使用的是其他技术吗?
我正在寻找类似这样的JSF - Displaying the build date
答案 0 :(得分:14)
一种可行的方法:使用Maven过滤将文件放入包含所需信息的WAR或JAR中。然后在Java Web应用程序中,将该文件的内容作为ClassPath资源InputStream
加载。
在src/main/resources
下创建一个包含以下内容的文件(比如说“buildInfo.properties”):
build.version=${project.version}
build.timestamp=${timestamp}
请注意,由于an open defect,您需要在pom的timestamp
块中定义<properties>
属性,如下所示:
`<timestamp>${maven.build.timestamp}</timestamp>`
在构建期间,当您指定
时,将使用project.version(您在pom.xml中使用<version>
定义)的值过滤此文件。
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
在您的Java代码(JSF bean,无论如何)中,使用以下代码:
InputStream in = getClass().getClassLoader().getResourceAsStream("buildInfo.properties");
if (in == null)
return;
Properties props = new Properties();
props.load(in);
String version = props.getProperty("build.version");
// etc.
如果你的框架支持从类路径加载属性作为“资源包”(例如在Spring中),则不需要加载属性文件的前面的Java代码。