本文是以Mac电脑安装环境来阐述:
首先需要安装jenkins+sonarqube+soanr-scanner
我这里的打包的安装包版本如下:
jenkins是2.2221,
sonarQube版本是7.4(打包的里面有7.6,8.0,但是未用到,具体原因将在本文中讲解)
sonar-scanner:4.2
在安装sonarQube时的版本选择及遇到的坑:
我刚开始安装的是sonarQube8.0版本配置的mysql8.0数据库(注:详细配置过程可自行网上搜索很多例子的,这里不再讲解),但是怎么都连接不了数据库,
后来又换成7.6版本发现连接数据库创建表的时候有几个表报sql格式异常也不能启动sonarQube,后来发现sonarQube在7.6之后就不支持MySQL数据库存储,改为使用内置的数据库来存储分析数据,
所以我们也就不需要对sonarQube文件夹下的config下的sonar.properties文件进行配置,直接在bin目录下执行sonar.sh start就可以启动sonarQube了,然后在浏览器访问localhost:9000就可以了。
然后在jenkins中配置了sonarQube之后,全局工具配置这里要:
这里一定要写bin/git,不能写文件夹路径,不然git拉取不到代码,这个错误解决之后,新建项目然后在配置构建的时候报错:
Error:Tasks support was removed in SonarQube 7.6.
后来发现是sonarQube的版本太高导致的不兼容,后来我更换了SonarQube7.4(也就是我提供的下载资源中的版本),再次运行又报错:
Caused by: hudson.plugins.git.GitException: Command "/usr/local/git/bin/git fetch --tags --progress -- https://github.com/fuzhongbin/demoplace.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
原来是我没有登陆jenkins,用Admin登陆之后再构建然后又报错:
Task 'sonarQube' does not exist. Please use 'list' task to see all available tasks.
发现是我在配置项目的时候,构建选择的Execute SonarQube Scanner-->Task to Run中自己写了一个sonarQube的名字,直接去掉这个名字置空保存,再次编译就OK了
我使用的是jenkins跟github实现push代码之后自动编译构建:这里需要在jenkins-->系统管理-->系统配置-->GitHub-->高级-->☑️为Github指定另外一个Hook Url会得到http://XXX.X.X.X:XXX/github-webhook/这样的勾子地址,复制该地址,然后打开GitHub对应的项目
将上面得到的地址填在Payload Url中 Add WebHook即可完成push自动构建。(但是这个ip必须是公网ip)