在xhtml页面中显示构建的版本和日期

时间:2012-09-14 14:38:58

标签: maven jsf-2 build version war

我想在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

1 个答案:

答案 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代码。