【问题标题】:Displaying version and date of build in the xhtml page在 xhtml 页面中显示版本和构建日期
【发布时间】:2012-09-14 14:38:58
【问题描述】:

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

【问题讨论】:

    标签: maven jsf-2 build version war


    【解决方案1】:

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

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

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

    注意由于an open defect,你需要在你的pom的<properties>块中定义timestamp属性如下:

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

    在您的构建过程中,此文件将使用 project.version 的值进行过滤(您在 pom.xml 中使用 &lt;version&gt; 定义,当您指定时)

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

    【讨论】:

    • 写下你的最后一句话:配置属性文件(由java.util.Properties 加载)和国际化/本地化属性文件(由java.util.ResourceBundle 加载)之间有明显的区别。一个有自尊的开发者通常不会为了加载方便而混合它们。
    • 不同意。 ResourceBundle 的主要用例是国际化。如果您只想显示版本号和构建日期,请在 java 代码中使用java.util.Properties。我引用 Spring 的 org.springframework.context.MessageSource 的唯一原因是因为它减少了样板代码。 (谷歌同意我的观点。例如:mkyong.com/jsf2/jsf-2-0-and-resource-bundles-example
    • 另外,请注意这里的用例是向 webapp 输出添加内容,而不是“配置”。
    • 我仍然觉得你的陈述令人困惑/冲突。您在Java代码示例中没有使用ResourceBundle#getBundle(),而是Properties#load()。为ResourceBundle 编写JSF 标签支持,我当然已经知道了:)
    • 修订后的答案以澄清“仅使用资源包 LOL”评论指的是 Java 代码的最后一块,而不是 Maven 配置。
    猜你喜欢
    • 2014-06-24
    • 1970-01-01
    • 2012-07-10
    • 2010-12-22
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多