簡體   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