Плагины maven-site 3.3 java.lang.ClassNotFoundException: org.apache.maven.doxia.siterenderer.DocumentContent
С этой ночи плагины maven site 3.3 перестают работать.
Попробуйте удалить локальный репозиторий, но никаких изменений. Maven 3.3.9 java 1.8
Нет конфигураций или зависимостей, определенных в pom для плагинов сайта.
[WARNING] Error injecting: org.apache.maven.report.projectinfo.CiManagementReport
java.lang.NoClassDefFoundError: org/apache/maven/doxia/siterenderer/DocumentContent
Ответы
Ответ 1
Я только начал получать эту проблему также во время сборок. То, что работало для меня, было определенно определить maven-site-plugin
и maven-project-info-reports-plugin
вместе с номерами версий в pom.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
Ответ 2
Это вызвано обновлением файла maven-project-info-reports-3.0 до 3.0.0 и полагается на doxia-site-renderer 1.8 (и имеет org.apache.maven.doxia.siterenderer.DocumentContent этого класса), но maven-site -plugin: 3.3 полагаться на doxia-site-renderer: 1.4 (и не иметь org.apache.maven.doxia.siterenderer.DocumentContent)
Мы можем указать конкретную версию maven-project-info-reports-plugin в части отчета:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
</plugin>
</plugins>
</reporting>
Или мы можем указать maven-site-plugin для последней версии 3.7.1:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
в сборной части пом
Ответ 3
Версия плагина сайта maven также должна быть явно задана в разделе сборки. Вот пример:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>licenses</report>
<report>dependency-info</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<!-- Part of Maven - specified version explicitly for compatibility
with the maven-project-info-reports-plugin 3.0.0-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
</plugins>
</build>
Ответ 4
Я также попал в эту ошибку на некоторые из моих заданий сборки сегодня. Исправление, предложенное выше, добавление конкретной зависимости для плагина maven-site работает и устраняет эту проблему.
Однако то, что он выделил для меня, было тем фактом, что я даже запускал цель сайта mvn, и я даже не знал, что мы бежим, и мы этого действительно не требуем.
Мое исправление было поэтому удалить цель сайта из моего mvn arg, так как, хотя созданный им сайт на самом деле очень полезен, я никогда не знал, что мы его создаем, мы никогда его не публиковали и фактически удаляли его каждый сбор.
Ответ 5
Maven 3 больше не поддерживает Doxia.
использование
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.2</version>
</plugin>
Ссылка: https://maven.apache.org/plugins/maven-site-plugin/maven-3.html
Ответ 6
Вам действительно нужно добавить дополнительную информацию (я не спустил BTW).
IIRC; если вы не укажете версию для плагина, привязанного к этапам жизненного цикла, вы получите последнюю версию.
Пытаться:
- Обновление до последней версии maven - 3.5.4
ATOW
- Запуск
mvn help:effective-pom
и проверка того, какие версии на самом деле решаются - если у вас есть старый журнал из CI или где бы вы ни сравнивались. - Объяснение установки версии
maven-site-plugin
в разделе pluginManagement
- Добавление зависимости к
maven-site-plugin
(см. Ниже)
org/apache/maven/doxia/siterenderer/DocumentContent
можно найти в doxia-site-renderer
:
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-site-renderer</artifactId>
<version>1.8.1</version>
</dependency>
Я подозреваю, что явным образом установка версии maven-site-plugin на то, что вы использовали (кстати), будет работать.
Изменить: преследовал аналогичную проблему при тестировании сборки плагинов maven, явным образом работала для меня, явно устанавливая версию maven-site-plugin
(3.7.1 ATOW) в интеграционном помпе, используемом maven-invoker-plugin
.
Ответ 7
Я попытался следовать совету Changhua и определить maven-project-info-reports-plugin для версии 3.0.0, а maven-site-plugin - 3.7.1 в моем pom файле, но обнаружил, что сайт maven по-прежнему вытаскивается в версии 3.3 плагина maven-site, независимо от того, как я его установил.
Наконец я понял, что моя проблема связана с нашей структурой проекта. У нас есть родительский pom, в котором мы определяем зависимость maven-site-plugin, которая затем была унаследована детьми poms. Однако файл build pom был отдельным и не определял maven-site-plugin вообще, что позволило maven вытащить версию 3.3 самостоятельно. Я добавил зависимость maven-site-plugin (версия 3.7.1) к файлу сборки pom, так что он теперь существует как в файле build pom, так и в родительском pom файле, и теперь сборка корректно использует версию 3.7.1, и проходит снова.
Ответ 8
Следующие версии в pom.xml устранили проблему для меня:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
</plugin>
Ответ 9
Решение
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
</plugin>
не работает.
Перед публикацией решения необходимо протестировать.