乐趣区

关于maven:整合mavensonarjacoco

配置 maven 插件

在 maven 的 settings 中配置插件

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

    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <sonar.host.url>
                    ${sonar.url}
                </sonar.host.url>
                <sonar.login>${user.token}</sonar.login>
            </properties>
        </profile>
    </profiles>

打包参数

 mvn clean  jacoco:prepare-agent test jacoco:report sonar:sonar -Dsonar.projectKey=${projectName} -Dsonar.java.binaries=target install -e -am

常见谬误

  • You’re not authorized to run analysis. Please contact the project administrator Sonarqube local
    应用了 sonar.login 参数, 传了 token, 但在执行 mvn 命令时呈现了该谬误.
    解决办法:
    办法 1. 敞开 sonarqube 的权限, 配置 > 配置 > 权限 >Force user authentication(不举荐), 这样能够删除 sonar.login 参数, sonar 会主动创立我的项目;
    办法 2. 应用 -Dsonar.projectKey=${projectName}, 指定 project 名称就不会报错了
  • Your project contains .java files, please provide compiled classes with sonar.java.binaries property
    应用新版本的 sonarqube 呈现
    解决办法:
    办法 1. 回退 sonarqube java 插件的版本(不举荐)
    办法 2. 应用 -Dsonar.java.binaries=target
  • jacoco 没有生成测试报告,Skipping Jacoco execution due to missing execution data file
    这个谬误很恶心, 始终产生 surefire 的测试报告, 没有 jacoco 的测试报告. 因为我是用命令行执行的 jacoco, 没有用 pom.xml 配置, 要与 Azure 整合, 尝试了半天。
    解决办法:
    须要残缺的增加一下参数,test 必须放两头, 放其它地位,jacoco 也不肯定失效

    jacoco:prepare-agent test jacoco:report sonar:sonar
退出移动版