繁体   English   中英

为什么 Maven 命令“mvn sonar:sonar”在我的“pom.xml”中没有任何插件配置的情况下工作?

[英]Why does the Maven command “mvn sonar:sonar” work without any plugin configuration in my “pom.xml”?

我的仓库中有一个 Maven Web 项目。

我是一个 Maven 菜鸟,但我仍然理解这样一个事实,即我们需要配置一些插件,然后我们才能运行插件特定的命令。

事实:

我有一个声纳服务器在我的本地机器上运行,端口为 9000。

我没有在 POM.xml 中添加任何声纳特定插件

参考:

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

观察:

但是当我从命令行在我的项目中运行mvn sonar:sonar ,它仍然可以正常工作。

事实是我还没有在我的 POM.xml 中配置声纳插件即使这样 Maven 是从哪里获取并理解“声纳:声纳”目标/命令的?

问题/好奇心:

我不想要声纳本身的工作知识。 我想知道为什么mvn sonar:sonar在没有在我的 pom.xml 中配置声纳插件的情况下工作

为什么和如何?

原因是 Sonar Maven 插件托管在Codehaus Mojo 项目中,并受益于 groupId“org.codehaus.mojo”。 这允许使用快捷方式“sonar:sonar”而不是“org.codehaus.mojo:sonar-maven-plugin::sonar”(参见Maven 文档的“配置 Maven 以搜索插件”部分)

Sonar 有它自己的一组插件(例如 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。 所以它无需任何设置即可工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM