我的回购中有一个Maven网络项目。
我是一个Maven noob,但我仍然明白我们需要配置插件才能运行插件特定命令。
事实:
我在本地机器上的9000端口运行了一个声纳服务器。
我没有在我的POM.xml中添加任何声纳特定插件
参考:
http://www.sonarsource.org/we-had-a-dream-mvn-sonarsonar/
观察:
但是当我从命令行在我的项目中运行mvn sonar:sonar
时,它仍能正常工作。
事实的问题是我没有在我的POM.xml中配置声纳插件即使那时Maven正在拾取并理解“声纳:声纳”目标/命令?
问题/好奇心:
我不想要声纳本身的工作知识。我想知道为什么mvn sonar:sonar
无法在我的pom.xml中配置声纳插件
为什么以及如何?
答案 0 :(得分:54)
原因是Sonar Maven插件托管在Codehaus Mojo project并受益于groupId“org.codehaus.mojo”。这允许使用快捷方式“sonar:sonar”而不是“org.codehaus.mojo:sonar-maven-plugin :: sonar”(参见Maven documentation的“配置Maven搜索插件”一节) / p>
答案 1 :(得分:5)
Sonar有自己的插件集(例如maven-checkstyle-plugin),它在调用时运行。这些插件根据您配置的Sonar服务器中的项目设置自动配置。
这背后的原因是在你的声纳实例中有一个受控配置。
它自动为您工作的原因是您正在使用声纳服务器安装的默认值(localhost:9000)。
这种“零配置”方法在此处进一步详述:We had a dream : mvn sonar:sonar
答案 2 :(得分:0)
我可能是错的,但我的假设是,此功能通常来自您的settings.xml
,而不是Maven的pom.xml
文件。我假设<id>sonar</id>
部分指定了运行mvn
时调用的配置文件的名称。
这只是一个猜测,而不是目前的明确答案,因为其他答案似乎都没有兑现分数,我现在没有时间自己研究真正的答案。
答案 3 :(得分:0)
我可能是错的,但是我的假设是,此功能通常来自您的settings.xml
,而不是Maven的pom.xml
文件。我假设<id>sonar</id>
部分指定了运行mvn
时调用的配置文件的名称。
这只是一个猜测,而不是目前的明确答案,因为其他答案似乎都没有兑现分数,我现在没有时间自己研究真正的答案。
参考:
答案 4 :(得分:0)
根据本页 - https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/
Maven 项目扫描器默认使用 SonarScanner。所以它无需任何设置即可工作。