SonarScanner升级至7.1后加载BranchConfiguration组件失败求助
我之前处理过类似的SonarQube版本升级兼容性问题,针对你遇到的Unable to load component interface org.sonar.scanner.scan.branch.BranchConfiguration错误,给你几个针对性的解决步骤,按顺序尝试应该能搞定:
检查并升级SonarQube服务器端的分支插件
SonarQube 7.1对分支功能的处理逻辑有更新,旧版本(适配7.0)的SonarBranch插件会和新版本服务器不兼容。登录SonarQube后台,进入「Marketplace」,搜索Branch插件,确保安装的是适配7.1的版本。如果已经安装旧版本,先卸载再重新下载对应版本,之后重启SonarQube服务器。确保sonar-scanner版本与服务器完全匹配
虽然你已经升级了scanner,但一定要确认scanner的版本和SonarQube服务器7.1的版本完全一致(比如都是7.1.0.1100)。运行命令sonar-scanner -v查看当前scanner版本,和服务器后台「Administration」-「System」里显示的版本对比,不一致的话去Sonar官网下载对应版本的scanner替换。清理sonar-scanner的本地缓存
旧的缓存文件可能残留了7.0版本的配置信息,导致加载异常。找到scanner的缓存目录:- Linux/macOS:
~/.sonar/cache - Windows:
C:\Users\<你的用户名>\.sonar\cache
清空该目录下的所有文件,然后重新运行扫描命令。
- Linux/macOS:
移除项目中所有分支相关配置
即使你删掉了命令行的-Dsonar.branch.name=参数,项目根目录的sonar-project.properties文件里可能还有分支相关配置(比如sonar.branch.target、sonar.branch.exclude),把这些配置全部注释或删除后再尝试扫描。查看SonarQube服务器日志定位深层问题
如果上面的步骤都没用,去SonarQube服务器的logs目录查看web.log和ce.log,里面会有更详细的错误堆栈信息,比如是否是C分析插件和分支插件版本冲突。这时候需要同步升级C插件到适配7.1的版本,确保所有插件都和服务器版本兼容。
补充:SonarQube 7.x版本的分支功能属于商业版特性,如果你的服务器是社区版,升级后可能默认启用了分支相关逻辑但缺少插件支持,这时候也会触发这个错误,需要确认你的SonarQube版本是否包含分支功能授权。
内容的提问来源于stack exchange,提问作者CptanPanic

