Почему команда Maven "mvn sonar:sonar" работает без какой-либо конфигурации плагина в моем "pom.xml"?

У меня в репо есть веб-проект Maven.

Я новичок в Maven, но все же я понимаю, что существуют плагины, которые нам нужно настроить только тогда, когда мы сможем запустить специальные команды для плагина.

Факты:

У меня на моем локальном компьютере запущен сонарный сервер с портом 9000.

Я не добавил какой-либо плагин для сонара в свой POM.xml

Ссылка:

http://www.sonarsource.org/we-had-a-dream-mvn-sonarsonar/

Наблюдение:

Но все же, когда я бегу mvn sonar:sonar в моем проекте из командной строки он работает нормально.

Дело в том, что я НЕ настроил плагин сонара в своем POM.xml. Даже тогда, откуда, черт возьми, Мэйвен поднимает и понимает цель / команду "сонар: сонар"?

Вопрос / любопытство:

Я не хочу рабочих знаний самого сонара. Я хочу знать почему mvn sonar:sonar работает без настройки сонарного плагина в моем pom.xml

Почему и как?

5 ответов

Решение

Причина в том, что плагин Sonar Maven размещен в проекте Codehaus Mojo и использует идентификатор группы "org.codehaus.mojo". Это позволяет использовать ярлык "sonar: sonar" вместо "org.codehaus.mojo:sonar-maven-plugin::sonar" (см. Раздел "Настройка Maven для поиска плагинов" документации Maven)

У сонара есть собственный набор плагинов (например, maven-checkstyle-plugin), который он запускает при вызове. Эти плагины автоматически настраиваются в соответствии с настройками вашего проекта на настроенном сервере Sonar.

Причиной этого является наличие контролируемой конфигурации в вашем экземпляре сонара.

Причина, по которой он работает автоматически для вас, заключается в том, что вы используете значения по умолчанию для установки вашего сонарного сервера (localhost:9000).

Этот подход "нулевой конфигурации" более подробно описан здесь: у нас была мечта: mvn sonar:sonar

Я могу ошибаться, но я предполагаю, что эта возможность обычно исходит от вашего settings.xml вместо нашего pom.xmlфайл с Maven. Я бы предположил, что<id>sonar</id> Раздел определяет имя профиля, вызываемого при запуске mvn.

Это просто предположение, а не окончательный ответ на данный момент, поскольку в других ответах, похоже, не хватает отметки, и у меня нет времени самому копаться в настоящих ответах в данный момент.

Ссылки:

Я могу ошибаться, но я предполагаю, что эта возможность обычно исходит от вашего settings.xml вместо нашего pom.xmlфайл с Maven. Я бы предположил, что<id>sonar</id> Раздел определяет имя профиля, вызываемого при запуске mvn.

Это просто предположение, а не окончательный ответ на данный момент, поскольку в других ответах, похоже, не хватает отметки, и у меня нет времени самому копаться в настоящих ответах в данный момент.

Согласно этой странице - https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/

Сканер проектов Maven по умолчанию использует SonarScanner. Так что он работает без какой-либо настройки.

Другие вопросы по тегам