Maven PDF插件:在PDF中显示当地时间



我使用maven 2.2.1和maven- PDF -plugin在"mvn site"期间生成我的可靠报告的PDF版本。

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

下面是我的pom.xml中build/plugins部分的一个片段:

<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插件页面上提到的一些日期/时间选项,例如:

<coverdate>${dateTime}</coverdate>

<coverdate>${day}/${month}/${year} - ${hour}:${minute}:${second}</coverdate>

但是生成的时间戳总是UTC。

我也尝试了一些尝试,如<coverdate>${dateTime+5:30}</coverdate>,但这不起作用。

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

如何获得本地时区的时间戳?我甚至不需要<cover></cover>部分;如果我能把构建时间戳放到PDF中我就能完全摆脱它了

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

我把我的时区特定的时间戳放在我的pom的描述标签中,像这样:

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

现在我可以告诉pdf插件插入到coverdate。我的pdf。xml有如下内容:

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

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

无可否认,将时间戳插入到pom的描述标记中并不是很好,但由于我没有将描述标记用于任何其他内容,因此我可以接受它。

不幸的是,我不能访问任意${项目。pdf.xml中的X}属性…只有像${project.name}和${project.description}这样的几个属性似乎可以工作。

相关内容

  • 没有找到相关文章

最新更新