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

Rak*_*ela 46 java maven-plugin maven sonarqube

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

我是一个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中配置声纳插件的情况下工作

为什么以及如何?

Sim*_*rce 57

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

  • 这并没有回答关于在 pom 中没有提到插件时`mvn sonar:sonar` 如何执行的问题?我认为 OP 不想询问“声纳”是如何解决的。 (4认同)
  • 还是不明白。为什么让groupId“ org.codehaus.mojo”让我们使用快捷方式? (2认同)
  • @levgen org.apache.maven.plugins 和 org.codehaus.mojo 是特殊的组 ID。请参阅 http://maven.apache.org/guides/introduction/introduction-to-plugin-prefix-mapping.html 的最后一部分 (2认同)

Tor*_*ten 5

Sonar有自己的插件集(例如maven-checkstyle-plugin),它在调用时运行.这些插件根据您配置的Sonar服务器中的项目设置自动配置.

这背后的原因是在你的声纳实例中有一个受控的配置.

它为您自动工作的原因是您正在使用声纳服务器安装的默认值(localhost:9000).

这种"零配置"的方法在这里进一步详述:我们有一个梦想:mvn声纳:声纳