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