Sonar + PostgreSQL + Jenkins + SVN集成

Sonar代码扫描笔记

准备

环境

1.java 11(sonar 新版本需要java 11)

2.SonarQube

注意点:启动时,若有端口冲突,则至\sonar\conf路径下的sonar.properties解开sonar.web.port=该句的注释,并配置端口号

数据库配置

2019年4月10号,SonarQube发文称在7.9之后,所有的SonarQube的版本(CE、DE、EE和DCE)中将停止对MySQL的支持。建议所有的商业环境中使用PostgreSQL。故采用PostgreSQL

下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

port : 5432 user:postgres password:admin

步骤:

1.创建用户

img

img

img

2.创建sonar数据库

img

img

img

img

3.配置sonar.properties.

img

4.重启sonar

img

参考教程:https://www.cnblogs.com/Simple-Small/p/12882948.html

启动

运行\sonar\bin\windows-x86-64\StartSonar

打开网址 http://localhost:9000 (或者自己配置的端口号,我的是8090)

管理员登录(初始账户:admin 初始密码:admin)(我的是账户 admin 密码adminadmin)

普通登录账户:users 密码:users (该账号为系统中配置所得:配置–>权限)

125地址:http://xx.xx.xx.xxx:9285/projects

img

扫描项目

点击创建项目–输入项目标识及显示名–创建令牌(生成的令牌token不会再显示第二次,要立即复制)–选择分析语言及操作系统–开始扫描

方法一:

复制提示参数至控制台运行(一直报错,暂未解决,怀疑是使用令牌名称的原因,可能要使用令牌码?)

方法二(推荐):

需要扫描的目录下面添加文件sonar-project.properties,根据自己的参数进行修改。

sonar.login=admin (可使用令牌码)
sonar.password=adminadmin 
sonar.projectKey=just-test
sonar.projectName=just-test
sonar.sources=src
sonar.projectVersion=0.1.0
sonar.host.url=http://localhost:8090

cmd 在当前扫描的路径下运行scanner(D:\sonar-scanner\bin\sonar-scanner.bat),等待即可

当前弊端:因为扫描的代码在自己本地,所以需要在自己本地下载扫描器进行扫描。

因此集成jenkins 扫描svn代码可无需自己下载扫描器

Jenkins + SVN + Sonar

jenkins 准备

启动

下载jenkins

在jenkins 目录文件夹下运行java -jar jenkins.war --httpPort=5016

我本地访问地址:http://xx.xx.xx.xx:5016/

管理员账号及密码:

admin \ adminadmin

img

jenkins 管理员密码修改

.jenkins\users\admin_11473407485452606327搜索password 替换123456加密后:

#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq 则可以以“123456”登录管理员admin.

img

jenkins 手动build 项目

安装:前端项目的构建都依赖node.exe, 所以要指定NodeJS的安装目录,需要先安装nodeJS插件,路径System Configuration-->Manage Plugins-->可选插件搜索nodejs 安装, 安装完成后重启jenkins。

配置:路径Manage Jenkins > Global Tool Configuration最下面会出现nodejs,点击新增NodeJS按钮(可选择从官网安装,我这里选择直接读取我本机的nodejs)

(附如果查看自己电脑node 的安装路径及版本:cmd node -v \\ npm config ls)

1.安装subversion 插件后,jenkins首页,新建Item创建项目,选择freestyle project -->

2.源码管理 :选择subversion, 填写项目地址,添加credentials等 -->

3.构建环境:勾选provide Node & npm bin/folder to PATH–>

4.构建,增加构建步骤,选择Execute Windows batch command,输入cmd命令npm i && npm run build && xcopy .\dist\* D:\logs\dist\ /s/e/y ,开始构建时jenkins首先会checkout 代码(根据第二步填写的地址,至C:\Users\…\jenkins\workspace\项目名下),再执行此处配置的命令,xcopy是复制第一个参数文件至第二个参数处。

5.保存

6.首页,配置的项目名处点击build now,即开始构建项目。

jenkins 自动build 项目

需要SVN 服务器权限

(大致步骤:

进入【系统管理】-【Jenkins命令行接口】,进入【Jenkins命令行】页面,下载jenkins-cli.jar,放到Svn所在服务器的root目录下,进入Svn的hooks目录下,创建文件post-commit,并赋予执行权限,文件内容如下

source /etc/profile
java -jar /root/jenkins-cli.jar -s Jenkins的URL/jenkins/ -auth 账户:密码 build 项目名```

jenkins-cli.jar 里面提供了一些API可以用来执行脚本自动新建项目自动构建等等,具体可以看【Jenkins命令行】)

参考:https://blog.csdn.net/q13554515812/article/details/86651851

SVN搭建

下载visualSVN Server,地址:http://www.visualsvn.com/server/download/, 安装。

img

img

img

img

新建仓库后可新建用户新建组等,目前该svn服务器搭建于125上,访问地址:

https://xxxxxxxx.xxxxxxxx.com/!/#SVNTest
用户:admin password: admin

之后即可上传及下拉代码

设置jenkins 自动构建

方法一:通过svn 钩子触发jenkins 构建

1.下载jenkins cli, 复制至SVN服务器端的某个目录下。
在这里插入图片描述
2. 进入hooks 目录下(SVN仓库安装地址下面,eg:D:\grace.wu\SVN\SVNRepositories\SVNTest\hooks),新建post-commint.cmd,写批处理脚本如下:

set REPOS=%1
set TXN=%2
set JENKINS_CLI="D:\grace.wu\SVN\SVNRepositories"
java -jar %JENKINS_CLI%\jenkins-cli.jar -s http://10.29.69.55:5016/ -auth admin:adminadmin build justForTest```

坑:网上大部分的hooks script都是基于linux的shell脚本,windows服务器下不能直接执行

问题:build 的时候指定了build 的item,因此仓库更新时都会去build这个item,应该可以判断更新的是哪个path然后指定某个path更新某个item,但是对SVN hooks及批处理脚本命令不熟,暂时不会,且一旦jenkins 的item的名字发生更改还需更改svn服务器脚本,较为麻烦。应该在jenkins系统里面配置svn更新自动更新。

方法二:jenkins系统里设置自动构建

jenkins 集成sonar

1.安装sonarqube scanner插件:System Configuration-->Manage Plugins-->可选插件搜索sonarqube scanner安装

2.Manage Jenkins ==> Global Tool Configuration指定sonnar 扫描器的安装路径

3.添加Jenkins访问SonarQube Server的凭证:Manage Jenkins ==> Configure System ==> SonarQube serversname:随意,URL:sonar 的URL ,Server authentication token:添加(类型选择secret text,在secret中输入sonar的令牌码)保存

4.项目–>配置–>构建–>增加构建步骤,选择Execute SonarQube Scanner->Analysis properties:

sonar.login=014c092b9ce8872d7eefab1384624cef2a207b37
sonar.projectKey=jenkins-test
sonar.projectName=jenkins-test
sonar.sources=src
sonar.projectVersion=0.1.0```

5.build 即可

参考文献

https://www.cnblogs.com/wangpenghui522/p/13853935.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值