[英]Maven SonarQube multi module
我有一個由幾個模塊組成的項目。
我正試圖用SonarQube分析這些。
我在每個模塊中都包含了Sonar Maven插件作為依賴項:
<dependency>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>5.1</version>
</dependency>
然后我使用以下方式運行Maven:
mvn clean verify聲納:聲納
Maven成功完成,我可以看到Sonar分析正在發生,但是當我打開Sonar UI時,模塊在項目中不可見。
然而...
如果我從單個模塊目錄運行Maven命令,它在項目中可見。
覺得我錯過了很簡單的東西,感謝任何幫助!
而不是作為依賴項,將sonar-maven-plugin
放在根pom.xml
的<build>
部分中,如下所示:
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.0.1</version>
</plugin>
</plugins>
</build>
由於它是一個多模塊項目,您應首先從根項目執行安裝,然后運行sonar:sonar
目標作為專用步驟 ,如下所示:
mvn clean install
mvn sonar:sonar
要配置sonarqube服務器URL, sonar.host.url
在settings.xml
或pom.xml
指定 sonar.host.url 的項目屬性,如下所示:
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>http://myserver:9000</sonar.host.url>
</properties>
SonarQube支持多模塊項目,就像Maven一樣。 這意味着包含多個模塊的Maven項目映射到包含多個模塊/組件的SonarQube項目,而不是多個項目。
以SonarQube代碼為例(它是一個多模塊Maven項目): 父項目聚合來自子模塊的所有信息,然后如果檢查其結構 (或其代碼頁),您可以看到所有子組件的列表(對於示例: SonarQube :: Core )
最重要的是你看到了預期的行為。 Maven項目的子模塊不打算作為項目進行分析,您應該始終分析父項目,SonarQube將本地處理模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.