本文介绍了Maven SonarQube多模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个由几个模块组成的项目.

I have a project made up of several modules.

我正在尝试使用SonarQube进行分析.

I'm trying to analyse these with SonarQube.

我在每个模块中都包含了Sonar Maven插件作为依赖项:

I've included the Sonar Maven plugin as a dependency in each module:

<dependency>
  <groupId>org.codehaus.sonar</groupId>
  <artifactId>sonar-maven-plugin</artifactId>
  <version>5.1</version>
</dependency>

然后我使用以下命令运行Maven:

Then I'm running Maven using:

Maven成功完成,并且可以看到Sonar分析,但是当我打开Sonar UI时,模块在项目中不可见.

Maven completes successfully and I can see the Sonar analysis happening however when I open the Sonar UI, the modules aren't visible in projects.

但是...

如果我从单个模块目录运行Maven命令,则在项目中可见.

If I run the Maven command from an individual module directory, it is visible in projects.

感觉我缺少一些非常简单的东西,感谢您的帮助!

Feel I'm missing something very simple, appreciate any help!

推荐答案

sonar-maven-plugin放置为根pom.xml<build>部分,而不是作为依赖项,如下所示:

Instead of as a dependency, put the sonar-maven-plugin in the <build> section of the root pom.xml, as follows:

<build>
    <plugins>
        <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.0.1</version>
        </plugin>
    </plugins>
</build>

由于这是一个多模块项目,因此您应该首先从根项目执行安装,然后运行sonar:sonar目标作为专用步骤,如下所示:

And since it's a multi-module project, you should first perform an install from the root project and then run the sonar:sonar goal as a dedicated step, as follows:

mvn clean install
mvn sonar:sonar

要配置声纳服务器URL,请settings.xmlpom.xml中指定sonar.host.url 的项目属性,如下所示:

To configure the sonarqube server URL, specify a project property of sonar.host.url in your settings.xml or pom.xml as follows:

<properties>
    <!-- Optional URL to server. Default value is http://localhost:9000 -->
    <sonar.host.url>http://myserver:9000</sonar.host.url>
</properties>

这篇关于Maven SonarQube多模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-22 07:05