SonarQube 不使用 IntelliJ 和 Maven 分析主要 java 代码

问题描述 投票:0回答:2

我在项目中使用 IntelliJ 和 Maven,并且必须使用 SonarQube 对其进行分析,但是当我使用 webApp 提供的命令扫描我的项目时,它仅分析 pom.xml 文件,而忽略项目的其余部分。

干净安装声纳:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login="此处对应的密钥"

我的pom.xml(项目标签内的内容):

<groupId>cl.itau.simulacionCredito</groupId>
<artifactId>SimulacionCreditoIntelliJ</artifactId>
<version>1.0</version>
<dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>RELEASE</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.beust/jcommander -->
    <dependency>
        <groupId>com.beust</groupId>
        <artifactId>jcommander</artifactId>
        <version>1.72</version>
    </dependency>
</dependencies>
<properties>
    <maven.compiler.source>6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
            <configuration>
                <excludes>
                    <exclude>**/HomeTest.java</exclude>
                    <exclude>**/PropuestaTest.java</exclude>
                </excludes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>3.0.0-M1</version>
        </plugin>
        <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.5.0.1254</version>
        </plugin>
    </plugins>
</build>

<distributionManagement>
    <repository>
        <id>SimulacionCredito</id>
        <name>SimulacionCredito</name>
        <url>file:C:\Users\Pc\IdeaProjects</url>
    </repository>
</distributionManagement>

我也尝试在配置标签中使用它:

<sonar.sources>src/main/java</sonar.sources> 

这件事发生了:

我的settings.xml在Maven的conf中:

<pluginGroups>
    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
  </pluginGroups>

  <proxies>
  </proxies>

  <servers>
  </servers>

  <mirrors>
  </mirrors>

  <profiles>
    <profile>
       <id>sonar</id>
       <activation>
           <activeByDefault>true</activeByDefault>
       </activation>
       <properties>
           <sonar.host.url>
             http://localhost:9000
           </sonar.host.url>
        </properties>
     </profile>
  </profiles>

在尝试修复此问题时,由于出现不同的错误,我一直在向 POM 添加内容。

我安装了最新版本的 SonarQube。

java maven intellij-idea sonarqube
2个回答
3
投票

Sonarqube 通过分析 jacoco 输出来工作。我在你的 pom.xml 中没有看到任何 jacoco 的配置。 https://www.petrikainulainen.net/programming/maven/creating-code-coverage-reports-for-unit-and-integration-tests-with-the-jacoco-maven-plugin/是一个关于如何进行的很好的教程设置它。

您还必须告诉 sonarqube 您的 jacoco.exec 文件所在的位置。 https://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Unit+Tests+for+Java+Project


1
投票

所以,问题是 IntelliJ 配置了 Java SE 开发工具包 11,我降级到 Java SE 开发工具包 8u181 并配置了 POM,以便 Maven 可以处理该更改,我再次执行扫描器,它工作了。

对 pom.xml 的更改:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

    <sonar.sources>src/main/java</sonar.sources>
</properties>

补充:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
         <version>3.8.0</version>
         <configuration>
            <source>8</source>
            <target>8</target>
         </configuration>
</plugin>

New analysis results

© www.soinside.com 2019 - 2024. All rights reserved.