2015-12-23 2 views
0

Я использую PDFDoclet с maven-javadoc-plugin, и теперь я прошел довольно долгий путь. У меня есть конфигурация maven и javadoc почти в той точке, которая достаточно хороша, но сейчас моя проблема заключается в том, что я не могу решить, как нажать номер версии проекта на титульную страницу PDF.Как получить доступ к версии проекта maven на странице обзора javadoc?

Прежде чем вы перейдете к ответу на мой вопрос, сообщив мне использовать фильтрацию maven <resource>, позвольте мне изложить, почему это не работает.

Фильтрация работает, беря исходный файл где-то в папке src, выполняя замену переменных и помещая вывод в папку target.

Javadoc работает путем чтения файлов в src/main/java и src/main/javadoc и AFAIK, выводящих результаты в target. Это означает, что фильтрация бесполезна для Javadoc, поскольку она ничего не читает от target

Мои результаты показывают, что любые переменные maven в комментариях javadoc не подменяются.

Какой трюк я могу использовать, чтобы заменить эти переменные в javadoc?

Решение не может включать фильтрацию выхода javadoc после задачи site: site, если только фильтрация ресурсов не работает в PDF-файлах.

Это конфигурация, FWIW:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <version>2.10.3</version> 
    <configuration> 
     <show>package</show> 
     <docfilessubdirs>true</docfilessubdirs> 
     <tags> 
     <tag> 
      <name>pdfInclude</name> 
      <placement>X</placement> 
      <head></head> 
     </tag> 
     </tags> 
    </configuration> 
    <reportSets> 
     <reportSet> 
     <id>PDF</id> 
     <reports> 
      <report>javadoc</report> 
     </reports> 
     <configuration> 
      <name>PDF</name> 
      <description>PDF doc</description> 
      <destDir>pdf</destDir> 
      <doclet>com.tarsec.javadoc.pdfdoclet.PDFDoclet</doclet> 
      <docletPath>${basedir}/pdfdoclet/pdfdoclet-1.0.3-all.jar</docletPath> 
      <useStandardDocletOptions>false</useStandardDocletOptions> 
      <additionalparam>-pdf my_tech_doc-${project.version}.pdf 
      -config ${basedir}/pdfdoclet/pdfdoclet.properties</additionalparam> 
     </configuration> 
     </reportSet> 
    </reportSets> 
    </plugin> 

и pdfdoclet.properties:

# http://pdfdoclet.sourceforge.net/configuration.html 
    # 
    #Lets the doclet print additional output in the console and to a logfile. 
    debug=true 
    #Print "Author" tags 
    author=false 
    #Print "Version" tags 
    version=true 
    #Print "since" tags 
    tag.since=true 
    #Create summary tables 
    summary.table=false 
    #Create hyperlinks 
    create.links=true 
    #Encrypt the PDF file 
    encrypted=false 
    #Allow printing of the PDF file 
    allow.printing=true 
    #Create a bookmark frame 
    create.frame=true 
    #Print a title page 
    api.title.page=true 
    api.copyright=None 
    api.author=Hansruedi 
    #Enables the tag-based filter 
    filter=true 
    filter.tags=pdfInclude 
    font.text.name=resources/arial.ttf 
    page.orientation=portrait 

В PDFDoclet -специфических api.* свойства должно привести к титульному листу в качестве первой страницы PDF, но он не работает. Если есть трюк, который я пропустил здесь, и я мог бы получить эту титульную страницу, то это может также позволить решение для этого как-то.

ответ

0

я понял, что я могу сделать быстрый и грязный хак с функциональностью Maven <resources>:

<resource> 
    <directory>${basedir}/src/main/resources</directory> 
    <targetPath>${basedir}/src/main/javadoc</targetPath> 
    <filtering>true</filtering> 
    <includes> 
     <include>**/overview.html</include> 
    </includes> 
    </resource> 

Это скопирует мой overview.html и фильтрует ее, выводя его в директорию javadoc источника.

Непригодность заключается в том, что эта отфильтрованная версия затем могла случайно оказаться под контролем версии, хотя с использованием svn я могу добавить ее в список ignore.

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