Sonar、checkstyle、jenkins安装,代码检查

sonar是个平台,可以集成checkstyle,findbugs等插件。

安装sonar

sonar8以上的版本不支持mysql,先安装postgres数据库。

安装postgres:

docker run --name postgresql -e POSTGRES_PASSWORD=sonar -e POSTGRES_USER=sonar -p 5432:5432  -d postgres;

进入容器 docker exec -it d693341f910a /bin/bash

进入数据库 psql -U sonar

创建名为sonar的数据库 create database sonar


安装sonar:启动sonar 指定数据库配置(自动创建表),挂载了一个文件夹(用来下载插件)

docker run --name sonarqube -d -p 9000:9000 -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://192.168.1.197:5432/sonar -v /data/sonarqube/extensions/plugins:/opt/sonarqube/extensions/plugins  sonarqube:8.7.0-community

访问9000端口,默认账号密码 admin/admin,自己可以设置账号

安插件

在应用市场找插件,chinese pack汉化包,checkstyle

在docker日志看安装过程,如果下载太慢,自己去github下载插件jar,放在宿主机 挂载的目录下/data/sonarqube/extensions/plugins,重启容器即可。

 checkstyle Releases · checkstyle/sonar-checkstyle · GitHub

本地代码连接sonar服务端

只限于本地检查代码。

maven 配置文件,加sonar的连接信息

   <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <sonar.host.url>
                  http://192.168.1.197:9000
                </sonar.host.url>
				<sonar.login>admin</sonar.login>
				<sonar.password>123456</sonar.password>
				<sonar.inclusions>**/*.java,**/*.xml</sonar.inclusions>
            </properties>
        </profile>

项目pom加个插件

            <plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.4.0.905</version>
            </plugin>

本地命令,就会分析代码并上传到sonar server

mvn sonar:sonar

自定义检查规则

sonar自带了一些规则,针对不同语言的。

想用checkstyle的规则,给java创建质量配置

 选择一些规则自己激活

仓库有checkstyle分类,可以自己选。不管哪个仓库,激活了就属于这个质量配置,如果新建了sonar项目可以针对这个项目设置用什么规则。

 

jenkins 安装

docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk11

 访问8080,按推荐设置安装插件。

插件管理找maven、sonar插件

  

点安装完重启

jeknins打包需要jdk,maven,要在jenkins服务器安装这些,并进行配置

 我用的容器,懒得安装了,直接选了自动安装,构建时会自动安装jdk maven。如果是配置的话,不选自动安装,输入jdk maven的目录

 

新建任务,如果没有maven选项,是maven插件没装

git仓库地址,要选择凭证,可以用私钥,选privatekey选项,把git私钥内容复制进去

 

这写maven命令

jenkins设置maven setting

如果用自定义maven 配置文件

管理文件

 新建maven seting

全局配置 可以改maven仓库, 默认值:如果setting有设置就用,没有就./m2

 

全局工具配置,修改默认setting

流水线的maven配置也得改

 jenkins设置sonar

全局设置sonar server的连接信息参考jenkins+sonar 持续集成检测代码质量 - 三只松鼠 - 博客园 。

生成sonar 令牌

获得sonar server的令牌后,在jenkins 的凭据设置中 设置sonar的令牌

全局设置sonar server的连接信息和使用的令牌:

另一个是在post step加执行 sonar,流水线可以配置构建前后要做的事,这里在构建后post 执行sonar,要写上sonar配置,也可以不写但要有专门的sonar配置文件放在指定地方,基本上控制台报错都会提示该怎么做

sonar.projectKey=melo 
sonar.projectName=melo
sonar.java.source=/var/jenkins_home/workspace/test-melo/src
sonar.java.binaries=/var/jenkins_home/workspace/test-melo/src/main/webapp/WEB-INF/classes

如果报错 org.sonar.squidbridge.api.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property

提示java文件找不到class文件,要设置sonar.java.binaries构建得到的class文件夹设置上了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值