Есть ли обходной путь для ошибки maven-javadoc-plugin MJAVADOC-414?

При использовании maven-javadoc-plugin для создания тестовой Javadoc я внезапно получил несколько ошибок, указывающих, что плагин Javadoc не смог найти какие-либо классы из моей основной кодовой базы. При выполнении цели test-javadoc путь к классам содержал только классы в папке src/test; никакие классы из src/main не были видны плагину.

Эта ошибка возникает в версиях maven-javadoc-plugin 2.10, 2.10.1 и 2.10.2. Эта ошибка является официально признанной ошибкой MJAVADOC-414, и вы можете просмотреть отчет об ошибке здесь. Официальный отчет об ошибках содержит обходной путь, включающий понижение версии плагина до версии 2.9.1, что, как я подтвердил, является успешным обходным путем для ошибок. Также стоит отметить, что ошибка в настоящее время указана как исправленная и должна быть устранена в следующем выпуске maven-javadoc-plugin, который, вероятно, имеет версию 2.11 2.10.3.

Тем не менее, я пытаюсь найти обходной путь для MJAVADOC-414, который не связан с излишним понижением версии 3 выпуска. Кто-нибудь знает обходной путь, который успешно устранит ошибочные сообщения об ошибках об отсутствующих ссылках на классы альтернативным способом, не связанным с понижением версии?


person Emily Mabrey    schedule 05.04.2015    source источник
comment
Это хороший вопрос и ответ, +1 для обоих. Но рассмотрите возможность пересмотра вашего блока текстового формата. Используйте абзацы и пробелы, чтобы сделать текст более разборчивым.   -  person Boris the Spider    schedule 05.04.2015
comment
Спасибо за голос и совет; Я обновил и Q, и A абзацами.   -  person Emily Mabrey    schedule 05.04.2015
comment
У вас есть возможность протестировать версию SNAPSHOT maven-javadoc-plugin версии 2.10.3? Так мы можем быть уверены, что проблема решена? Так что я мог бы начать выпуск на следующей неделе...   -  person khmarbaise    schedule 05.04.2015
comment
@khmarbaise Мне удалось получить копию maven-javadoc-plugin 2.11-SNAPSHOT, используя http://repository.apache.org/snapshots в качестве репозитория плагинов. Версия SNAPSHOT успешно сгенерировала тестовый Javadoc только с моим уже опубликованным обходным решением. Без моего обходного пути 2.11-SNAPSHOT генерировала те же ошибки, что и версии выпуска 2.10. Либо ошибка неправильно помечена как исправленная, либо патч не накатили в сборку SNAPSHOT.   -  person Emily Mabrey    schedule 05.04.2015
comment
Сначала спасибо за вашу помощь. Как я сказал. 2.10.3-SNAPSHOT. Я развернул текущее состояние магистрали как 2.10.3-SNAPSHOT, чтобы быть уверенным в хранилище моментальных снимков. Было бы неплохо, если бы вы могли перепроверить...   -  person khmarbaise    schedule 05.04.2015
comment
@khmarbaise Моя ошибка - я просто неправильно предположил. Я повторил тестирование обходного пути с помощью 2.10.3-SNAPSHOT. Обходной путь не повлиял на вывод этой версии, и мне не удалось воспроизвести ошибку для версии 2.10.3-SNAPSHOT. Я считаю, что ошибка была успешно исправлена.   -  person Emily Mabrey    schedule 07.04.2015
comment
Привет Круто спасибо за отзыв. Так что я могу начать новый выпуск в течение следующих дней.   -  person khmarbaise    schedule 07.04.2015
comment
@khmarbaise Нет проблем. Как я могу внести свой вклад в плагин javadoc, если я хочу исправлять ошибки/отправлять исправления? Он открыт для всех или только для одобренных отправителей?   -  person Emily Mabrey    schedule 08.04.2015
comment
Патчи и помощь всегда приветствуются и приветствуются. Вы можете просто добавить эти исправления к задаче в jira (issues.apache.org/jira/browse/ MJAVADOC), и если вы поставили достаточно хорошо работающих патчей, вы будете избраны коммиттером. См. maven.apache.org/guides/development/guide-helping.html Вы можете выразить желание поработать над чем-то в списке разработчиков...   -  person khmarbaise    schedule 08.04.2015
comment
Итак, я начал голосование по выпуску новой версии, которая содержит это исправление. mail-archives.apache .org/mod_mbox/maven-dev/201504.mbox/ Это займет 3-4 дня.   -  person khmarbaise    schedule 10.04.2015
comment
Итак, новый релиз официально анонсирован.   -  person khmarbaise    schedule 16.04.2015


Ответы (1)


Потенциальный обходной путь без перехода на более раннюю версию, который я в настоящее время успешно использую с maven-javadoc-plugin 2.10.2, включает добавление небольшой конфигурации ко всем связанным с тестами выполнениям плагина, включая следующие цели: test-javadoc, test-javadoc-nofork, test-aggregate, test-jar, test-aggregate-jar, test-fix и test-resource-bundle.

Как только вы определили выполнение, нацеленное на указанную цель, вы просто добавляете следующую конфигурацию к этому выполнению:

<!-- Additional Dependencies workaround for MJAVADOC-414 -->
<additionalDependencies>
    <additionalDependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>${project.artifactId}</artifactId>
        <version>${project.version}</version>
    </additionalDependency>
</additionalDependencies>

Этот обходной путь использует тег AdditionalDependencies для добавления зависимости к пути к классам во время выполнения подключаемого модуля. Добавленная зависимость определяется с помощью переменных проекта для идентификатора группы, идентификатора артефакта и версии. По сути, мы добавляем проект, определенный текущим POM, в путь к классам выполнения теста maven-javadoc-plugin.

Определение зависимости через относительные переменные делает это решение безопасным как для одного проекта POM, так и для нескольких проектов POM. Это решение также можно успешно использовать с объявлением pluginManagement. Если вы случайно добавите это решение в выполнение, не связанное с фазой тестирования, оно должно быть безвредным, но, скорее всего, это будет дублирование и может увеличить время выполнения.

person Emily Mabrey    schedule 05.04.2015