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

vel*_*elo 6 build version war maven jsf-2

我想在JSF应用程序的页脚上显示构建版本和构建日期.这些页面是XHTML.我正在寻找从pom.xml或其他工件获取信息的方法.

我发现以下使用maven-replace插件. http://www.vineetmanohar.com/2010/09/how-to-display-maven-project-version-in-your-webapp/

你还有其他技术吗?

我正在寻找与JSF相似的东西 - 显示构建日期

noa*_*hlz 15

一种方法可行:使用Maven过滤将文件放入包含所需信息的WAR或JAR中.然后在Java Web应用程序中,将该文件的内容作为ClassPath资源加载InputStream.

src/main/resources包含类似下面的内容下创建一个文件(比如说"buildInfo.properties"):

build.version=${project.version}
build.timestamp=${timestamp}
Run Code Online (Sandbox Code Playgroud)

请注意,由于存在缺陷,您需要timestamp<properties>pom块中按如下方式定义属性:

`<timestamp>${maven.build.timestamp}</timestamp>`
Run Code Online (Sandbox Code Playgroud)

在构建期间,将使用project.version的值过滤此文件(<version>当您指定时,将在pom.xml中定义该值)

 <resources>
   <resource>
     <directory>src/main/resources</directory>
     <filtering>true</filtering>
   </resource>
 </resources>
Run Code Online (Sandbox Code Playgroud)

在您的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.
Run Code Online (Sandbox Code Playgroud)

如果您的框架支持从类路径加载属性作为"资源包"(例如在Spring中),则不需要加载属性文件的前面的Java代码.