前言
上篇文章中已经介绍了jeknins,sonarqube,SonarQube Scanner安装,这里就不做描述了。本文主要介绍集成环节。
1. 安装Jenkins
下载安装包,这里我们下载war包
运行jenkins.war的方式有两种:
第一种:将其放到tomcat中运行(放到webapps目录下,启动tomcat)
第二种:直接执行 java -jar jenkins.war --httpPort=8080
https://jenkins.io/doc/pipeline/tour/getting-started/
这里我们选择第一种方式
启动tomcat(bin/startup.sh)以后访问 http://localhost:8080/jenkins/
2.安装sonarqube scanner插件
安装完成后,重新启动jenkins
2.1配置sonarqube
首先,在SonarQube中生成一个Token(PS:用token代替输入用户名和密码)直接输入一个用户名生产token。其次开启SCM。
然后,在Jenkins中配置连接sonarqube服务器的地址,这里用到的token就是刚才在sonarqube中创建的那个token
最后配置全局工具配置
因为我们这里的sonar scanner插件是自定义安装,所以添加路径。也可以直接选择自动安装。
3.创建任务。
由于我们的项目已经全部持续集成好了,后面只需要添加构建步骤就行。
下面这一步编辑很重要。
最最重要的是,配置SonarQube analysis properties
可以将其单独写到一个配置文件(sonar-project.properties)里面,也可以像这样每次都写一遍
sonar.projectKey=ks-cms-unicorn #工程key
sonar.projectName=ks-cms-unicorn #显示工程的名称,可以在sonar自动创建项目名。
sonar.projectVersion=1.0 #版本
sonar.language=java #分析的代码类型:java代码
sonar.sourceEncoding=UTF-8 #字符集
sonar.sources=$WORKSPACE #java代码路劲
sonar.java.binaries=$WORKSPACE #class路径,这一步很重要
开始构建:
下面就可以看出,漏洞分析成功:
构建中遇到的问题:
1)构建项目时错误信息:Caused by: Not authorized. Please check the properties sonar.login and sonar.password
这个问题就是第1)个问题中说的,jekins中没有配置sonar的login和password选项而导致的
解决办法:在Analysis properties一项中,加入sonar.login和sonar.password的配置,也就是登录sonar时的用户名和密码。
2)构建项目时错误信息:Caused by: Please provide compiled classes of your project with sonar.java.binaries property
这个问题是sonar扫描的项目工程中没有找到相应的class文件
解决办法:在Analysis properties一项中,增加sonar.java.binaries的配置,这个路径是项目工程中,编译的.class文件的路径。