如何让团队访问本地SonarQube 7.0实例并集成至持续交付流程?
嗨,刚接触SonarQube和CI的话,一步步来其实不难,我帮你梳理下具体步骤,让团队能访问你的SonarQube实例,同时把Jenkins构建的报告传上去:
第一步:让SonarQube实例对外可访问
默认情况下,SonarQube只会绑定localhost,只有你自己能访问。要让团队成员通过局域网访问,得改下配置:
- 找到你SonarQube安装目录下的
conf/sonar.properties文件 - 找到
sonar.web.host这一行,把值改成0.0.0.0(这样允许所有网卡接入) - 保存文件后重启SonarQube服务
- 接下来要开放SonarQube的默认端口
9000:- Windows:打开「Windows Defender防火墙」→「高级设置」→添加入站规则,允许9000端口的TCP连接
- Linux:用
ufw allow 9000/tcp(Ubuntu/Debian)或者firewall-cmd --add-port=9000/tcp --permanent && firewall-cmd --reload(CentOS/RHEL)
- 最后,查一下你本地机器的局域网IP:
- Windows:打开命令提示符,输入
ipconfig,找「以太网适配器」下的IPv4地址 - Linux:输入
ip addr,找对应网卡的inet地址
团队成员用这个IP加端口就能访问了,比如192.168.1.100:9000
- Windows:打开命令提示符,输入
第二步:配置Jenkins和SonarQube集成
要让Jenkins构建时自动把报告传到你的SonarQube,得做这几步:
- 安装Jenkins插件:
- 打开Jenkins后台,进入「插件管理」→「可选插件」,搜索
SonarQube Scanner并安装,安装后重启Jenkins
- 打开Jenkins后台,进入「插件管理」→「可选插件」,搜索
- 配置SonarQube服务器信息:
- 先去你的SonarQube后台,登录admin账号,进入「我的账号」→「安全」,生成一个新的token(记下来,后面要用)
- 回到Jenkins,进入「全局工具配置」,找到「SonarQube Scanner」,点击「新增SonarQube Scanner」,配置好安装路径(可以选自动安装)
- 再进入「系统管理」→「系统配置」,找到「SonarQube servers」,点击「新增SonarQube」:
- Name随便填(比如「Team SonarQube」)
- Server URL填你的SonarQube局域网地址,比如
http://192.168.1.100:9000 - Server authentication token选「添加」→「Jenkins」,类型选「Secret text」,把刚才生成的SonarQube token填进去,保存
- 在Jenkins项目中添加Sonar扫描步骤:
- 打开你的Jenkins项目,进入「配置」→「构建步骤」,点击「添加构建步骤」→「Execute SonarQube Scanner」
- 可以直接在「Analysis properties」里填参数,比如:
sonar.projectKey=你的项目唯一标识 sonar.projectName=项目显示名称 sonar.sources=./src # 你的项目源码路径 sonar.java.binaries=./target/classes # Java项目的编译类文件路径,其他语言按需调整 - 更方便的方式是在项目根目录创建
sonar-project.properties文件,把上面的参数写进去,Jenkins会自动读取这个文件
第三步:给团队成员配置访问权限
默认只有admin能看所有项目,得给团队成员开权限:
- 登录SonarQube后台,进入「管理」→「安全」→「全局权限」
- 如果允许匿名查看报告,可以给「Anyone」组勾选「浏览」权限;如果需要登录,就给「Users」组勾选「浏览」权限
- 还可以进入「用户」页面,给团队成员创建账号,或者开启LDAP集成(如果你们团队有统一账号系统的话)
常见问题排查
- 团队成员访问不了SonarQube:检查你的机器防火墙是否开了9000端口,SonarQube是否绑定了
0.0.0.0,局域网IP是否正确 - Jenkins上传报告失败:检查SonarQube的token是否正确,Jenkins服务器能不能ping通你的SonarQube机器,扫描参数里的源码路径是否正确
内容的提问来源于stack exchange,提问作者Jared Collins
相关产品推荐
相关产品推荐

