У нас есть Sonar и Jenkins, расположенные на одном компьютере, и анализ Sonar запускается как шаг публикации вакансий Jenkins. Задания Jenkins созданы с помощью Maven 3.0.5.
Все было хорошо, пока вчера мы не обновили Sonar с 4.5.x до 5.1.2.
После обновления шаг сонара завершился неудачно, за исключением:
org.apache.maven.lifecycle.LifecycleExecutionException: Не удалось выполнить цель org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) в проекте TestApplication: не удается выполнить Sonar
Вызвано: org.apache.maven.plugin.MojoExecutionException: Не удается выполнить Sonar
Вызвано: org.apache.maven.plugin.PluginResolutionException: не удалось разрешить плагин org.codehaus.sonar:sonar-maven3-plugin:5.1.2 или одну из его зависимостей: не удалось прочитать артефакт дескриптор для org.codehaus.sonar:sonar-maven3-plugin:jar:5.1.2
Вызвано: org.sonatype.aether.resolution.ArtifactDescriptorException: Не удалось прочитать дескриптор артефакта для org.codehaus.sonar:sonar-maven3-plugin:jar:5.1.2
Вызвано: org.sonatype.aether.resolution.ArtifactResolutionException: Не удалось найти org.codehaus.sonar:sonar-maven3-plugin:pom:5.1.2 в http://repo.maven.apache.org/maven2 был кэширован в локальном репозитории, повторная попытка разрешения не будет предприниматься, пока не истечет интервал обновления центральный истек или обновления принудительно
Мы выяснили, что на самом деле существует версия 5.1 org.codehaus.sonar:sonar-maven3-plugin, но нет версии 5.1.2 в репозитории maven.
Исправить:
Нам удалось исправить это, установив для org.codehaus.mojo:sonar-maven-plugin версию 2.6 в нашем файле pom, как рекомендовано на официальном Анализ с помощью Sonar doc
Но поскольку у нас есть десятки проектов, должно быть лучшее решение, а не изменение файлов pom каждого проекта.