8

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

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

您还使用其他技术吗?

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

4

1 回答 1

17

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

创建一个包含以下内容的文件(比如说“buildInfo.properties”)src/main/resources

build.version=${project.version}
build.timestamp=${timestamp}

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

`<timestamp>${maven.build.timestamp}</timestamp>`

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

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

于 2012-09-14T16:16:48.190 回答