Плагин 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}, похоже, работают.