Jenkins+Sonar质量门禁【实践篇-maven版】
Jenkins+Sonar质量门禁【实践篇-maven版】
配置文档百度挺多的,就不展开来了
首先很遗憾的告诉大家,maven版做不了质量门禁!只能扫描!!!
就我们公司项目里,jenkins建的maven任务是最多的,所以我也首选用maven项目测试,然而11月尾叫了解,各种测试下来没有进展。那时还特意去官网注册,生成SonarQube token,配置到jenkins凭证上,以便在jenkins发布中使用token代替账号密码的方式去操作sonarqube,还下载中文汉化包进行汉化。
然而配置任务发布报错:Exception in thread "main" 域名assDefFoundError: org/sonar/batch/bootstrapper/IssueListener,SonarQube scanner exited with non-zero code
搞了1~2天,从此被抓去干别的活了。。。没错,就是去搞虚拟机迁移,因为公司买了新服务器,需要把伪服务器(家用台式机改造的linux系统,装了个virtualbox)的虚拟机迁移到新服务器上(2网段)。而这台测试机器刚好也要挪走,话说当时想直接把jenkins装在系统上,而不是docker上,因为想着以后一直用。
安装过程有个诡异的问题,不知道是不是2网段跟默认0网段有什么冲突,各种方式装jenkins(java -jar war包、tomcat跑war包,甚至yum 直接装),无一不遇到首次安装jenkins,插件安装失败问题:
不要告诉我这个方法:
1 sed -i \'s#http://域名ins-域名/download#https://域名域名/jenkins#g;s#http://域名#https://域名#g\' 域名 2 3 http://jenkins访问ip/jenkins/pluginManager/advanced 4 上面的 Update Site url 改成 域名域名 。。。
试过很多遍,无解。竟然改完之后,重启jenkins,修改过的配置文件还是没改过前的。且考虑到,装完之后还要配置很多东西,什么git、java、maven,还要根据报错信息装缺漏的插件。。。
无奈只能搞回docker版的jenkins,话说docker恢复安装环境确实快。
1、恢复镜像:原服务器上docker save,新服务器docker load
2、数据恢复:各种映射到宿主机的数据目录拷贝复制
3、恢复服务:docker run -v 跑起来即可
上面都是流水文,交代下背景,下面干货来了!
话说我在jenkins建的maven项目里,报错信息看不到解决办法。所以干脆模拟整个过程:进去docker jenkins里面,git 拉项目,然后手动运行sonar扫描。
因为公司项目不敢在域名 添加东西,所以借来了小俊子给的helloworld java 项目。然后扫描成功了。
1、进去jenkins容器
docker exec -it xxxx bash
2、进入jenkins worksapce目录
3、克隆hello-域名项目(趁某俊把这个项目还是设置公开,大家有需要赶紧下下来,哈哈哈,我已经粘到我gitee上了,下一篇会说到)
git clone https://域名/xie-zijun/hello-域名
4、修改域名 文件,添加插件引入:
<plugin> <groupId>域名域名n</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.2</version> </plugin>
加个题外话,其实我们公司maven项目也能加,因为这堆代码要放到build和plugins里面的,如果域名没有这两个标签,加上去即可。就是下面这个意思:
<!--maven打包插件--> <build> <plugins> 上面那坨代码 </plugins> </build>参考:https://域名/zwk_sys/article/details/105103691
4、手动运行扫描
bash-5.1# /usr/local/maven/bin/mvn install sonar:sonar -域名=http://192.域名:9090