按照我们前面提到的核心思路,我们在Jenkins中创建任务来检测我们的代码(本镜像中,创建了一个helloWorld的工程,大家使用配置可参考)。大概操作如下:
3.4.1. 新建任务,选择构建一个maven项目,点击确定。
3.4.2. 项目配置中,需要配置源码管理、触发器和build任务。
1. 首先,写上一些项目的描述信息,不写也行。
2. 配置触发器
3 源码管理
4. build任务:
其中Analysis properties的内容可参考如下:
参考一:
sonar.login=admin sonar.password=admin sonar.projectKey=test sonar.projectName=test sonar.projectVersion=0.1 sonar.sources=. sonar.binaries=bin sonar.java.binaries=.
参考二:
sonar.projectKey=my:project # this is the name displayed in theSonarQube UI sonar.projectName=helloWorld sonar.projectVersion=1.3.12 # Path is relative to thesonar-project.properties file. Replace "\" by "/" onWindows. # Since SonarQube 4.2, this property isoptional if sonar.modules is set. # If not set, SonarQube starts looking forsource code from the directory containing # the sonar-project.properties file. sonar.sources=src sonar.binaries=bin # Encoding of the source code. Default isdefault system encoding #sonar.sourceEncoding=UTF-8 sonar.java.binaries=/opt/
然后保存即可
登录Sonarqube
在本机输入服务器ip:9000/,填入用户名admin和密码admin后,修改SCM设置,不然Jenkins构建时会报错,输入SVN账号和密码
报错内容大致如下:
ERROR: Error during SonarQube Scanner execution ERROR: Error when executing blame for file pom.xml ERROR: Caused by: svn: E170001: Authentication required for '<:xxxx> Welcome to testcode SVN' ERROR: ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging. WARN: Unable to locate 'report-task.txt' in the workspace. Did the SonarScanner succedeed? ERROR: SonarQube scanner exited with non-zero code: 1 Finished: FAILURE
3.4.3. 上传项目,并检测
1. 我们在本机上安装svn客户端,我使用的是TortoiseSVN,然后配置连接服务器,上传项目。
2. 在Jenkins刚刚创建的任务中,点击立即“立即构建”,此时我们将在窗口右侧看到构建的进度,如果构建成功后,任务会提示执行成功。
3.4.3 查看项目代码的检测结果
登录Sonarqube,我们将在首页上就能看到检测结果:
参考:https://www.freebuf.com/articles/security-management/160897.html