整合maven+sonar+jacoco

2年前 (2022) 程序员胖胖胖虎阿
275 0 0

配置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
版权声明:程序员胖胖胖虎阿 发表于 2022年9月13日 下午8:00。
转载请注明:整合maven+sonar+jacoco | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...