目前有两种办法,第一种是使用SonarQube-Scanner-Maven,第二种是结合gitlab-ci进行

前提条件:已安装并启动sonarqube,知道访问地址和登录的用户名及密码,具体参考文档:https://www.cnblogs.com/sanduzxcvbnm/p/15770254.html

第一种办法:使用SonarQube-Scanner-Maven

官方文档地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/

要求

1.maven版本:3.x (我这里使用的是3.5.4版本,配置好环境变量)

2.至少SonarQube服务器支持的最低版本的Java正在使用中,也就是最低java版本是11

我这里统一使用jdk-11.0.2版本

下载地址:https://repo.huaweicloud.com/openjdk/11.0.2/

SonarQube安装在centos 7系统上,使用的软件包是:openjdk-11.0.2_linux-x64_bin.tar.gz (配置好环境变量)

本机电脑是windows10系统,使用的软件包是:openjdk-11.0.2_windows-x64_bin.zip (配置好环境变量)

maven设置

找到maven的配置文件:settings.xml,添加如下内容

<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://192.168.2.161:9000 <!-- 这一行换成实际的sonarqube访问地址 -->
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>

sonarqube获取token

登录sonarqube,点击右上角的用户名,选中“我的账号”,切换到“安全”,输入令牌名称,点击生成令牌,复制这个。

分析使用命令:mvn clean verify sonar:sonar -Dsonar.login=Token # 把Token换成上面生成的令牌

mvn clean install
mvn sonar:sonar -Dsonar.login=Token # 使用指定版本的sonar
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar -Dsonar.login=Token

在项目根目录下执行如下命令,就会自动拉取sonar使用的有关插件,然后进行分析,结果会在sonar的web页面上显示出来

第二种办法:结合gitlab-ci进行

前提:我这边的CI/CD工具使用的是gitlab-runner,本身项目中已经存在的有.gitlab-ci.yml文件了.

1.先登录sonar的web页面,点击“项目,选择"更多",选择“来自GitLab”

2.输入名称,gitlab的api接口地址,个人token

3.输入个人令牌

4.获取到个人有权限管理的项目后,点击管理,选择使用“gitlab-ci”

5.按照页面提示在项目文件中添加内容,完成配置

6.提交代码到该分支,sonar的web页面上查看效果







使用sonarqube对java项目进行分析的更多相关文章

  1. Jenkins+Gradle+Sonar进行Java项目代码分析

    Jenkins+Maven+Sonar与Jenkins+Gradle+Sonar配置方法很相似,区别就是Java项目所用的编译工具不同,一个是maven,一个是gradle 使用maven编译工具的可 ...

  2. Java项目性能瓶颈分析及定位(八)——Java线程堆栈分析(五)

    对于CPU而言,常见的瓶颈主要有两种:服务器的压力很小,但是CPU的利用率却很高,这样的性能瓶颈相对比较容易定位(好比我只是说了你一句,你就哭了,你的弱点立马就暴露出来了):给服务器施加的压力很大,但 ...

  3. 收藏基本Java项目开发的书

    一.Java项目开发全程实录 第1章 进销存管理系统(Swing+SQL Server2000实现) 第2章企业内部通信系统(Swing+JavaDB实现) 第3章 企业人事管理系统( Swing+H ...

  4. 利用内存分析工具(Memory Analyzer Tool,MAT)分析java项目内存泄露

    转载:http://blog.csdn.net/wanghuiqi2008/article/details/50724676 一.开发环境: 操作系统:ubuntu 14.04 IDE:Eclipse ...

  5. 使用Jprofiler分析Java项目的内存开销情况并利用强制回收控制内存

    一.问题背景 自己开发的Java项目中占用太多的Heap Space.即使在Eclipse的虚拟机参数中设置"-Xms128m -Xms2048m -XX:MetaspaceSize=512 ...

  6. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

  7. 用Ant实现Java项目的自动构建和部署

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml         本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...

  8. C/C++在Java项目、Android和Objective-C三大平台下实现混合编程

    Android和iOS开发都支持C++开发,可以一套代码多平台使用.同时C++难以反编译的特性也可以为Android开发带来代码的保密,另一native特性也可以提高代码的运行效率. 一.为什么使用C ...

  9. java初学的分析

    java初学的分析第一阶段:入门阶段学习目标:简单项目开发学习内容:1.Java入门书籍,Java基础知识.关于Java入门级的书,给大家推荐过<Java编程思想>.<Java核心技 ...

随机推荐

  1. github package的使用教程

    一.写在前面 上一次,笔者向大家介绍了把gitlab仓库作为npm私包的使用方法,具体的详见我的博文地址https://www.cnblogs.com/cnroadbridge/p/16406476. ...

  2. Python图像处理丨图像腐蚀与图像膨胀

    摘要:本篇文章主要讲解Python调用OpenCV实现图像腐蚀和图像膨胀的算法. 本文分享自华为云社区<[Python图像处理] 八.图像腐蚀与图像膨胀>,作者: eastmount . ...

  3. filebeat + logstash 日志采集链路配置

    1. 概述 一个完整的采集链路的流程如下: 所以要进行采集链路的部署需要以下几个步聚: nginx的配置 filebeat部署 logstash部署 kafka部署 kudu部署 下面将详细说明各个部 ...

  4. 04.nvue开发

    nvue开发注意项 nvue专用内置组件跟api https://uniapp.dcloud.io/nvue-outline?id=_2开发nvue页面 网络示例 https://www.cnblog ...

  5. 5.1 从C到C++

    在前4章中介绍了C语言的主要内容,已经足以应付许多算法竞赛的题目了,然而能写不代表好写,有些虽然能够用C语言实现,但是使用C++写起来往往会更快,并且不容易出错 从c到c++ C语言是一门很有用的语言 ...

  6. nginx反向代理缓存配置

    关于nginx的反向代理缓存配置,用的最多的就是CDN公司,目前CDN公司用纯nginx做缓存的已经很少了,基本都用tnginx(阿里的).openresty:但是这两款软件都是基于nignx开发的, ...

  7. Odoo env.ref()函数

    python env.ref()函数作用是获取xml id记录. 1 action = self.env.ref('base.res_company_action').read()[0] 2 acti ...

  8. 羽夏看Linux内核——段相关入门知识

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...

  9. 在docker中出现的僵尸进程怎么处理

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.发现问题 小玲是一名数据库测试人员,这一天她尝试在docker环境中部署GreatDB集群,结果在对greatsqld ...

  10. 故障案例 | lsof是怎么"影响"MySQL计算打开文件句柄数的

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 lsof中附加不同参数产生的结果也不同,小心"踩坑". 1. ...