SonarQube+Jenkins安装工程中遇到的吭
1. SonarQube是不是有点飘了,居然要java11+才能运行
解决方案: 重新下载老版本
也不知道哪个版本才好用,就下载了7.0 和6.6,这两个版本用jdk1.8就可以用
2. 配置数据库url的时候,必须使用utf-8,解决办法:索性加全
3. 有lang 在被使用,解决办法:关机重启;这是我在windows下遇见的,不像关机重启,可以将jdk的进程杀掉,主要是几个jdk进程
4. 配置数据库的时候,一般推荐用mysql,网上的教程也大多是mysql。如果是oracel,需要自己将oracel的驱动jar放到lib/jdbc目录下.
我用过mysql和mssql,mssql的sample中建议sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar;integratedSecurity=true
实际使用中“ ;integratedSecurity=true ” 一加就使用失败
5. 配置DB后打开会有些慢,因为会创建很多表,表中是记录了一些规则
6. 以下页面,之后还会出现,用户名和密码是admin admin,好像和我配置在conf/xx.property下的没有啥关系
7. 还有包含一些汉化的,一定要和自己下载的SonarQube版本对应,页面不能下载的时候,去对应链接的github中查找版本进行下载
8. 再次启动SonarCube,只有在es proceesing running 且web proccessing running,才能正常打开url,有任何一个错,去看对应的log
比如:
8-1) Process exited with exit value [es]: 143
查看logs中的es.log,发现其中只有一条warning记录
8-2)不能使用root启动sonar
8-3) 之前用root启动生成的temp文件的创建者是root,导致再次启动失败
8-4 )明明mysql已经可以运行了,为什么要用mssql??
2019.08.06 15:22:30 ERROR web[][o.s.s.p.Platform] Web server startup failed: Database collation must be case-sensitive and accent-sensitive. It is Chinese_PRC_CI_AS but should be Chinese_PRC_CS_AS.
8-5 )关于错误:This driver is not configured for integrated authentication. ClientConnectionId:03726c7d-a9cb-498e-a87a-07a8f063f7b5
直接将jdbc.url后面的交互啥的删掉了【这也是我上面第四点提到的】
和Jenkins中的配置
说我没有验证,然而我怎么都不支持,我的匿名账户也已经disabled
后来我将sonar中配置—配置—-权限—Force user authentication,就暂时解决这个问题
Jenkins中需要做的配置:
1. 下载和sonar cube有关的插件,安装完毕之后进行重启
2. 在Jenkins中,系统管理—-系统设置—-SonarQube servers—如下进行配置
3. 在具体的任务中,配置中添加Post Steps, 选择Execute SonarQube Scanner,填写如下
jkd8是我本地安装的JDK,我命令为jdk8
sonar.projectKey=coty-api
sonar.projectName=coty-api
sonar.language=java
sonar.java.source=1.8
#sonar.sources=/var/lib/jenkins/workspace/coty-api/src/main/
sonar.sources=/var/lib/jenkins/workspace/coty-api/target/classes
sonar.sourceEncoding=UTF-8
保存之后点击立即构建,会发现构建历史中多了sonar的logo
且在sonar页面中,项目下面可以看到自己的项目,有多少个bug,有多少个漏洞,有多少个坏习惯