【问题标题】:maven pdf plugin: show local time in pdfmaven pdf插件:以pdf格式显示当地时间
【发布时间】:2013-01-03 07:06:09
【问题描述】:

我正在使用 maven 2.2.1 和 maven-pdf-plugin 在“mvn 站点”期间生成我的肯定报告的 PDF 版本。

我想在 PDF 本身中显示报告(即 PDF)生成时间戳,但在我的本地时区中,而不是在 UTC 中。我的本地时区是 UTC +5:30 (IST)。

这是我 pom.xml 中 build/plugins 部分的 sn-p:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pdf-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <id>pdf</id>
            <phase>site</phase>
            <goals>
                <goal>pdf</goal>
            </goals>
            <configuration>
                <aggregate>true</aggregate>
                <generateTOC>none</generateTOC>
                <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

这是我的 pdf.xml:

<document xmlns="http://maven.apache.org/DOCUMENT/1.0.1"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/DOCUMENT/1.0.1 http://maven.apache.org/xsd/document-1.0.1.xsd"
          outputName="${artifactId}_surefire-report">

    <meta>
        <title>${artifactId} - Surefire Report</title>
        <author>QA Team</author>
    </meta>

    <toc></toc>

    <cover>
        <coverTitle>TNT:${artifactId}</coverTitle>
        <coverdate>${dateTime}</coverdate>
        <coverSubTitle>Surefire Test Report</coverSubTitle>
        <projectName>${project.name}</projectName>
    </cover>
</document>

PDF 生成良好。问题是我希望coverdate 显示在我的本地时区中。我尝试了Maven PDF plugin page 中提到的一些日期/时间选项,例如:

&lt;coverdate&gt;${dateTime}&lt;/coverdate&gt;

&lt;coverdate&gt;${day}/${month}/${year} - ${hour}:${minute}:${second}&lt;/coverdate&gt;

但生成的时间戳始终是 UTC。

我也尝试了一些尝试,例如&lt;coverdate&gt;${dateTime+5:30}&lt;/coverdate&gt;,但这不起作用。

我尝试在coverdate 中插入${maven.build.timestamp}(如果在我的 pom 中使用,则确实是我的当地时间),但是在生成 PDF 时不会插入。

如何获取本地时区的时间戳?我什至不需要&lt;cover&gt;&lt;/cover&gt; 部分;如果我能以某种方式在 PDF 中获取构建时间戳,我可以完全摆脱它。

【问题讨论】:

    标签: maven maven-2 timezone maven-pdf-plugin


    【解决方案1】:

    我找到了一个迂回的方法来完成这个。

    我将特定时区的时间戳放在我的 pom 的描述标签中,如下所示:

    <description>${maven.build.timestamp}</description>
    
    <properties>
        <maven.build.timestamp.format>E dd-MMM-yyyy HH:mm z</maven.build.timestamp.format>
    </properties>
    

    现在我可以告诉 pdf 插件将其插入到封面日期中。我的 pdf.xml 有这个:

    <cover>
        <coverTitle>My Cover Title</coverTitle>
        <coverdate>${project.description}</coverdate>
    ...
    </cover>
    

    我现在在 PDF 封面上获得了所需的时间戳,在我的本地时间,我想要的格式。

    诚然,将时间戳插入到 pom 的描述标签中并不是很好,但是由于我不将描述标签用于其他任何事情,所以我可以忍受。

    不幸的是,我无法访问 pdf.xml 中的任意 ${project.X} 属性...只有 ${project.name} 和 ${project.description} 等少数属性似乎有效。

    【讨论】:

      猜你喜欢
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多