2013-01-19 3 views
1

Я использую maven 2.2.1 и maven-pdf-плагин для создания PDF-версии моего отчета о уверенности во время «mvn-сайта».maven pdf plugin: показать местное время в 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 отображался в моем местном часовом поясе. Я пробовал некоторые из вариантов даты/времени, указанных на Maven PDF plugin page, такие как:

<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.

ответ

0

Я нашел обходной путь для этого.

я кладу часовой пояс конкретной метки в теге описания моей POM как это:

<description>${maven.build.timestamp}</description> 

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

Теперь я могу сказать, Ф плагину, чтобы вставить это в coverdate. Мой PDF.xml имеет это:

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

я теперь получить нужную метку времени, в моем местном времени, отформатированные как я хочу, на PDF обложке.

Понятно, что не очень удобно вставлять метку времени в тег описания pom, но поскольку я не использую тег описания для чего-либо еще, я могу жить с этим.

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

Смежные вопросы