Maven не может разрешить sonar-maven-plugin версии 5.1.2

У нас есть 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 каждого проекта.


person Anton R    schedule 26.08.2015    source источник


Ответы (1)


Хорошо, простое решение найдено:

В репозитории maven (.m2) было кэшировано, что последняя версия org.codehaus.mojo:sonar-maven-plugin — 2.0, хотя последняя — 2.6. (в файле .m2/repository/org/codehaus/mojo/sonar-maven-plugin/maven-metadata-central.xml)

Старая версия сильно отличается от новой в том, как она работает (см. версию sonar-maven-plugin?)

Мы удалили каталог .m2/repository/org/codehaus/mojo/sonar-maven-plugin, чтобы загрузить более новую версию.

person Anton R    schedule 26.08.2015
comment
Лучше всего определить используемую версию вашей сборкой в ​​вашем файле pom. - person khmarbaise; 27.08.2015
comment
Я не согласен: представьте, что у нас есть много успешно работающих заданий. Было бы плохо менять их всех. И вы должны делать это каждый раз, когда выходит новая версия. - person Anton R; 27.08.2015
comment
Если вы этого не сделаете, ваш успех зависит от локального хранилища (другими словами, репозитория). - person khmarbaise; 27.08.2015
comment
Я согласен, что лучшее решение - сменить работу. Однако, как говорит Антон, когда есть много рабочих проектов, совместно использующих экземпляр SonarQube, просто невозможно заставить всех обновляться одновременно. Должна быть некоторая обратная совместимость, чтобы текущие задания продолжали выполняться до тех пор, пока разработчики-владельцы не сделают необходимое обновление. - person user944849; 23.09.2015