Добавление динамических ссылок на JavaDoc в сгенерированный сайтом Maven html
-
21-09-2019 - |
Вопрос
Мне интересно, есть ли способ с помощью плагина maven site заставить его автоматически создавать ссылку на некоторую структуру JavaDoc (например, класс) в html, который он генерирует.
В качестве примера того, что я имею в виду, Doxygen предоставляет способ сделать это с помощью протокола doxy.Вы можете создать якорь, подобный такому:
<a href="doxy://class/ExampleClass">ExampleClass</a>
Затем, когда вы запустите Doxygen, он заменит ссылку doxy:// ссылкой на соответствующий html-файл, содержащий документацию ExampleClass.Таким образом, если местоположение этого класса или его документации когда-либо изменится, мне не нужно будет вспоминать о том, чтобы вернуться и исправить ссылку, поскольку Doxygen автоматически изменит ее при следующей сборке.
Сайт Maven генерирует и предоставляет ссылку на индекс JavaDoc на панели навигации, и в JavaDoc есть ссылки, которые ссылаются на фактический исходный код, но я надеялся превратить любые ссылки, которые я делаю на классы в документации, в ссылки на JavaDoc этого класса, не беспокоясь о том, чтобы обновлять его в будущих выпусках, если что-то изменится.
Возможно ли это?Или я застрял с жестко закодированными ссылками?
Заранее спасибо!
Решение
Насколько мне известно, это изначально не поддерживается Доксия, фреймворк генерации контента, используемый Maven, и любой из Модули Doxia.Так что, я думаю, вам придется "жестко закодировать" свои ссылки.
Если вы используете APT, обратите внимание, что Doxia-1.1 (используется Maven >= 2.1.x) включает в себя некоторые улучшения исходного формата APT.Относительно Ссылки:
В Доксии-1.1 понятие 'Местные новости' ссылка была введена в дополнение к внутренний ссылки и внешний Ссылки.[...]
A Местные новости ссылка - это ссылка на другой документ на том же сайте.Локальные ссылки должны начните с либо
./
или../
чтобы отличать их от внутренних ссылок.Например.{{{./apidocs/com/company/example/ExampleClass.html}ExampleClass}}
С учетом сказанного, решением могло бы быть использование макромеханизмы входит в состав Doxia.Но вам придется написать свой собственный макрос для этой функции.Хотя это не должно быть слишком сложно, проверьте существующий код в исходном репозитории.