Плагин maven pdf: показать местное время в pdf

Я использую maven 2.2.1 и maven-pdf-plugin для создания PDF-версии моего верного отчета во время "сайта mvn".

Я хочу отобразить метку времени генерации отчета (т.е. PDF) в самом PDF, но в моем местном часовом поясе, а не в UTC. Мой местный часовой пояс UTC +5:30 (IST).

Вот фрагмент из секции build/plugins в моем 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 чтобы отображаться в моем местном часовом поясе. Я пробовал некоторые параметры даты / времени, упомянутые на странице плагина Maven PDF, такие как:

<coverdate>${dateTime}</coverdate>

а также

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

но полученная метка времени всегда UTC.

Я также попробовал несколько попыток, таких как <coverdate>${dateTime+5:30}</coverdate> но это не работает

Я пытался вставить ${maven.build.timestamp} (который, если используется в моем пом действительно в мое местное время) в coverdate но это не интерполируется при создании PDF.

Как я могу получить метку времени в своем местном часовом поясе? Мне даже не нужно <cover></cover> раздел; Я могу полностью избавиться от него, если смогу каким-то образом получить временную метку сборки в PDF.

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 не так уж и здорово, но, поскольку я не использую тег description ни для чего другого, я могу с этим смириться.

К сожалению, я не могу получить доступ к произвольным свойствам ${project.X} в pdf.xml... только несколько свойств, таких как ${project.name} и ${project.description}, похоже, работают.

Другие вопросы по тегам