Допущение
Сообщение об ошибке означает, что разрешение типа не удалось ( класс отсутствует ), и это, похоже, происходит из-за того, что плагин пытается разрешить слегка недопустимый путь (обратите внимание на двойную косую черту в "неправильное имя: com / amazonaws / mws / feeds / model // ReportInfo" ).
Определение проблемы
Я начал с mvn -X javadoc:fix
, чтобы включить отладку. Вывод оказался очень полезным:
[DEBUG] Analyzing com.amazonaws.mws.feeds.model.GetFeedSubmissionListByNextTokenResult
[INFO] Saving changes to com.amazonaws.mws.feeds.model.GetFeedSubmissionListByNextTokenResult
[DEBUG] Analyzing com.amazonaws.mws.feeds.model.UpdateReportAcknowledgementsResult
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
Последний успешно обработанный класс был GetFeedSubmissionListByNextTokenResult
(порядок обработки не всегда одинаковый, но это не имеет значения), но UpdateReportAcknowledgementsResult
не удалось. Теперь мы можем сосредоточиться на этом классе.
Дальнейшее исследование трассировки стека показало, что исключение произошло, когда плагин исправлял (заменял) теги ссылок (знакомый тег {@link ClassName}
javado c):
at com.thoughtworks.qdox.type.TypeResolver.resolveTypeInternal (TypeResolver.java:187)
at com.thoughtworks.qdox.type.TypeResolver.resolveType (TypeResolver.java:119)
at org.apache.maven.plugins.javadoc.AbstractFixJavadocMojo.replaceLinkTags (AbstractFixJavadocMojo.java:1858)
at org.apache.maven.plugins.javadoc.AbstractFixJavadocMojo.updateJavadocComment (AbstractFixJavadocMojo.java:1808)
at org.apache.maven.plugins.javadoc.AbstractFixJavadocMojo.updateJavadocComment (AbstractFixJavadocMojo.java:1756)
at org.apache.maven.plugins.javadoc.AbstractFixJavadocMojo.updateEntityComment (AbstractFixJavadocMojo.java:1632)
at org.apache.maven.plugins.javadoc.AbstractFixJavadocMojo.fixMethodComment (AbstractFixJavadocMojo.java:1486)
at org.apache.maven.plugins.javadoc.AbstractFixJavadocMojo.processFix (AbstractFixJavadocMojo.java:1100)
Теперь мы знаем, что искать в этом классе.
Root причина
Реальная проблема была сразу очевидна, например, в UpdateReportAcknowledgementsResult: 147
// @param values a {@link .ReportInfo} object.
Эта точка перед именем класса неправильно обрабатывается в TypeResolver QDOX. Как только я удалил все {@link .X}
вхождения, плагин был успешно запущен.
Я предполагаю, что эти точки были помещены туда по ошибке во время масштабной операции поиска и замены. Один мой друг однажды сделал нечто подобное ...