1

「mvnsite」で、maven 2.2.1とmaven-pdf-pluginを使用して、surefireレポートのPDFバージョンを生成しています。

レポート(つまりPDF)の生成タイムスタンプをPDF自体に表示したいのですが、UTCではなくローカルタイムゾーンに表示したいと思います。私のローカルタイムゾーンはUTC+5:30(IST)です。

これが私のpom.xmlのビルド/プラグインセクションからのスニペットです:

<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問題は、ローカルタイムゾーンでを表示したいということです。MavenPDFプラグインページに記載されている日付/時刻オプションのいくつかを試しました。

<coverdate>${dateTime}</coverdate>

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

ただし、結果のタイムスタンプは常にUTCです。

私もいくつかの試みを試みまし<coverdate>${dateTime+5:30}</coverdate>たが、これはうまくいきません。

に挿入しようとしましたが${maven.build.timestamp}(私のpomで使用されている場合は実際に現地時間です)coverdate、PDFが生成されたときにこれは補間されません。

ローカルタイムゾーンでタイムスタンプを取得するにはどうすればよいですか?<cover></cover>セクションも必要ありません。どういうわけかPDFにビルドタイムスタンプを取得できれば、それを完全に取り除くことができます。

4

1 に答える 1

0

私はこれを達成するための回り道を見つけました。

タイムゾーン固有のタイムスタンプをpomのdescriptionタグに次のように配置します。

<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のdescriptionタグに挿入するのはそれほど素晴らしいことではありませんが、descriptionタグを他の目的に使用しないので、それで生きることができます。

残念ながら、pdf.xmlの任意の${project.X}プロパティにアクセスできません...${project.name}や${project.description}などのいくつかのプロパティのみが機能しているようです。

于 2013-01-23T04:57:02.627 に答える