2015-04-05 1 views
3

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

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

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

+1

Это хорошее Q & A, +1 для обоих. Но подумайте о пересмотре формата «блок текста». Используйте абзацы и пробелы, чтобы сделать их более разборчивыми. –

+0

Спасибо за голосование и совет; Я обновил как Q, так и абзацы. –

+0

У вас есть шанс проверить версию SANPSHOT версии maven-javadoc-plugin версии 2.10.3? Итак, мы можем быть уверены, что проблема решена? Поэтому я мог бы начать выпуск на следующей неделе ... – khmarbaise

ответ

2

Потенциального без понижения обходного путь, который я в настоящее время успешно использую с Maven-JavaDoc-плагиным 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 тег, чтобы добавить зависимость к классам во время выполнения плагина. Добавленная зависимость определяется с использованием переменных проекта для groupId, artifactId и версии. По сути, мы добавляем проект, определенный текущим POM, в путь класса выполнения теста maven-javadoc-plugin.

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