sonar与jenkins的集成

所有工具的配置和使用都是在centos环境下进行的
前提条件:
1。我已经完成了gitlab和jenkins的集成,实现gitlab执行push操作后,jenkins会触发脚本命令,生成一个以当前时间命名的文件。
2。sonar已经安装完成
如果前两部没有完成,可以看之前的博客流程
首先启动sonar
进入sonar目录
使用非root用户启动sonar

cd /software/sonarqube/bin/linux-x86-64
./sonar.sh start

进入sonar页面和jenkins页面
使用你的ip:端口号

192.168.43.167:9000
192.168.43.167:8080

在这里插入图片描述

在这里插入图片描述我主要以free项目为例。
如果没有jenkins没有安装sonar插件的,可以进入插件管理中下载
在这里插入图片描述

下载好之后,接下来在jenkins上配置sonar服务端
系统管理->系统设置->sonarqube server
在这里插入图片描述可以随便起一个名字,url就是你的sonar页面url,token需要添加,选择jenkins
在这里插入图片描述
类型选择secret text
在secret中输入sonar的token
可以根据url直接获取,然后增加描述jenkins-sonarqube-token

http://192.168.0.107:9000/account/security/

在这里插入图片描述完成之后点击应用,保存
然后在系统管理中选择全局工具配置
配置sonarqube scanner
SONAR_RUNNER_HOME输入你的sonarqube安装路径

在这里插入图片描述
点击应用,保存
然后进入free项目
打开配置,在构建部分增加构建步骤
execute sonarqube scanner

在这里插入图片描述然后可以直接输入命令
在这里插入图片描述

sonar.projectName=${JOB_NAME}    //sonar项目的名称
sonar.projectKey=spring                     //项目的key必须唯一
sonar.sources=/etc/gitlab/example/spring-boot-pay/    //sonar扫描项目的路径
sonar.java.binaries=/etc/gitlab/example/spring-boot-pay/target/classes   
sonar.projectBaseDir=/etc/gitlab/example/spring-boot-pay/    

完成后项目会出现sonar的标志

在这里插入图片描述
我们可以push以下察看是否完成
我直接在jankins关联的gitlab项目中的wbehook中尝试
在这里插入图片描述在这里插入图片描述gitlab出现200表示push成功
在这里插入图片描述
jenkins开始执行,我们查看以下控制台信息

在这里插入图片描述
进入sonar

在这里插入图片描述
成功!

也可以通git命令在项目目录下执行push,一样的效果

在这里面有几个坑
如果发现push之后,sonar页面只有项目名称没有任何代码信息,可能就是sonar扫描出错了,可以在jenkins的任务列表中点击任务i里面的控制台输出查看错误信息
1。首先是我的项目没有在jenkins路径下,所以需要配置sonar.projectBaseDir为你的项目路径
2。sonar扫描报错Please provide compiled classes of your project with sonar.java.binaries property
于是在jenkins构建配置中加上sonar.java.binaries=/etc/gitlab/example/spring-boot-pay/target/classes
如果项目目录下没有target文件,需要执行mvn install (后面的错误大部分都是mvn install 时的错误)
3。软件包xxxxx不存在解决办法。解决方法百度到这个包所在的jar包,然后在修改项目的pom文件
我加双星号之间的部分

<plugin>

             <groupId>org.apache.maven.plugins</groupId>

             <artifactId>maven-compiler-plugin</artifactId>

             <version>2.3.1</version>

             <configuration>

                 <source>1.5</source>

                 <target>1.5</target>

                 <encoding>UTF-8</encoding>
************************************
              <compilerArguments>
<verbose/>
<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
      </compilerArguments>
************************************************
             </configuration>

          </plugin>

4。在类路径或引导类路径中找不到程序包 java.lang。解决方法:
这个其实就是我之前没有配置java_home,所以上面的pom文件中maven插件里面的java_home识别不到。

vim etc/profile   //添加以下代码
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值