Как связать исходные классы JavaDoc из Test JavaDoc на сайте maven? - PullRequest
4 голосов
/ 05 сентября 2011

Настроив maven-site-plugin и maven-javadoc-plugin (с doclava doclet ), я пытаюсь получить надлежащие JavaDocs на сайте, сгенерированном mvn site. В моем коде есть тестовые классы sevaral JUnit (расположены в src / test / java / my / package / *. Java ), комментарии JavaDoc связывают исходные классы (расположены в src / main / java /my/package/*.java). Проблема заключается в том, что при создании Test JavaDocs javadoc не может найти, где находится документация по исходным классам. Я пытался указать javadoc, где его найти, используя links и offlineLinks опции конфигурации maven-javadoc-plugin ( задокументировано здесь ), но безуспешно. Я бы хотел, чтобы javadoc генерировал относительные ссылки, чтобы они работали при просмотре сгенерированной документации в автономном режиме (просмотр по адресу / path / to / project / target / site / index.html в браузере). Я не хотел бы отключить тестирование генерации JavaDocs

Мой pom.xml | Выдержка из вывода сайта mvn

Кроме того, я новичок в Java и Maven


Чтобы прояснить вопрос, вот пример. У меня есть тестовый класс GenerateATest, находящийся в src / test / java / name / earhinov / PrefixCircuits / GenerateATest.java (извините, комментарии на русском языке):

package name.earshinov.PrefixCircuits;
// imports skipped

/**
 * Тестирование алгоритма построения вспомогательных подсетей типа A,
 * реализованного в классе {@link name.earshinov.util.PrefixCircuitGenerator},
 * по отдельным случаям, описанным в оригинальной статье
 */
public class GenerateATest {
// ...

Связанный класс PrefixCircuitGenerator находится в src / main / java / name / earhinov / PrefixCircuits / PrefixCircuitGenerator.java . После запуска mvn site я получаю JavaDocs для исходных классов в target / site / apidocs / index.html и тестирую JavaDocs в target / site / testapidocs / index.html . В документации GenerateATest в Test JavaDocs я хотел бы видеть ссылку, ведущую к документации PrefixCircuitGenerator в исходных классах JavaDocs. Тем не менее, javadoc не может найти PrefixCircuitGenerator Я имею в виду, поэтому он не генерирует ссылку, и соответствующее предупреждение отображается в mvn site вывод:

[WARNING] /home/eugene/dev/java/PrefixCircuits-maven/src/test/java/name/earshinov/PrefixCircuits/GenerateATest.java:9: warning 101: Unresolved link/see tag "name.earshinov.util.PrefixCircuitGenerator" in name.earshinov.PrefixCircuits.GenerateATest

Моя цель (как-то) рассказать Javadoc, как генерировать ссылку. Изменение {@link name.earshinov.PrefixCircuits.PrefixCircuitGenerator} на {@link PrefixCircuitGenerator} ничего не меняет.

1 Ответ

0 голосов
/ 06 сентября 2011

Просто есть время для экспериментов. Кажется, что doclava doclet просто не поддерживает внешние ссылки на документацию (не реализует параметр командной строки -link). Я обнаружил это, запустив Javadoc из CLI. Возможно, плагин javadoc знает, что опция -link специфична для стандартного доклета, поэтому он не беспокоится о получении значения этой опции из pom.xml и передаче его в javadoc через аргументы командной строки, если используется альтернативный доклет. Следовательно, ошибка не генерируется.

...