Почему команда 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. Так что он работает без какой-либо настройки.