簡體   English   中英

Maven SonarQube多模塊

[英]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.urlsettings.xmlpom.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM