首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven pdf插件:以pdf格式显示本地时间

maven pdf插件:以pdf格式显示本地时间
EN

Stack Overflow用户
提问于 2013-01-20 03:38:08
回答 1查看 751关注 0票数 1

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

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

下面是我的pom.xml中构建/插件部分的一段代码:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<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上提到的一些日期/时间选项,例如:

<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中,我就可以完全摆脱它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 12:57:03

我找到了一种间接的方法来实现这一点。

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

代码语言:javascript
复制
<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是这样的:

代码语言:javascript
复制
<cover>
    <coverTitle>My Cover Title</coverTitle>
    <coverdate>${project.description}</coverdate>
...
</cover>

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

诚然,将时间戳插入到pom的description标签中并不是很好,但因为我不使用description标签做任何其他事情,所以我可以接受它。

不幸的是,我不能访问pdf.xml中的任意${project.X}属性...似乎只有${project.name}和${project.description}这样的几个属性有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14418110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档