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