SonarQube 扫描 Java 代码
SonarQube 扫描 Java 代码
环境
需要提前安装好 SonarQube7.9,安装步骤见 Docker 安装 SonarQube
步骤

填写项目名 my_project

填写token名 my_token

生成一个秘钥,后面用的到。

安装 sonarqube 客户端,用户扫描代码,先创建安装目录
mkdir -p /usr/local/sonarqube/sonar-scanner-cli && cd /usr/local/sonarqube/sonar-scanner-cli
下载客户端
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip
解压
unzip sonar-scanner-cli-4.2.0.1873-linux.zip
在 /etc/profile 的末尾添加环境变量
export SONAR_SCANNER_HOME=/usr/local/sonarqube/sonar-scanner-cli/sonar-scanner-4.2.0.1873-linux
export PATH=$SONAR_SCANNER_HOME/bin:$PATH
环境变量立即生效
source /etc/profile
测试客户端是否配置正确
sonar-scanner -v
创建工作目录
mkdir -p /usr/local/sonarqube/workspace && cd /usr/local/sonarqube/workspace
拉取一个开源项目 jmx_exporter 做测试
git clone https://github.com/prometheus/jmx_exporter.git
最终,我的代码目录(因为一直超时,我手动下载了代码):
/usr/local/sonarqube/workspace/jmx_exporter-master
在项目目录创建扫描配置文件 /usr/local/sonarqube/workspace/jmx_exporter-master/sonar-project.properties,各配置项如下:
# 项目名,如果项目名不存在会自动创建该项目
sonar.projectKey=my_project
# 源码路径,设置为当前目录
sonar.sources=.
# SonarQube 访问地址,根据实际情况填写
sonar.host.url=http://192.168.10.227:9000
# token,在 SonarQube 中创建的 token,只有 SonarQube 开起了强制用户认证,才需要 token,默认情况下,强制用户认证是关闭的。
sonar.login=c4765957e5ada82ebe21a7c2e1f56afbff4059d3
# 语言类型
sonar.language=java
# 二进制文件目录,就是 .class 文件的目录,只有部分项目需要该配置
sonar.java.binaries=collector/target/classes,jmx_prometheus_httpserver/target/classes,jmx_prometheus_javaagent/target/classes
# 源代码编码格式
sonar.sourceEncoding=UTF-8
进入项目目录
cd /usr/local/sonarqube/workspace/jmx_exporter-master/
需要先编译项目,主要是为了生成 .classs 文件
mvn clean package
执行扫描
sonar-scanner
待扫描结束,可以在浏览器看到扫描结果

安装扫描插件
扫描某种语言,需要安装对应语言的插件,如果没有,可以去应用市场安装该插件,例如 Java 需要安装 SonarJava 插件。

这个插件不小,耐心等待,安装完毕会提示重启。
# 也可以提前下载好这些插件包,放到下面任意目录
# 插件会被下载到这个目录
${SONAR_HOME}/extensions/downloads
# 重启后,插件会被安装到这个目录
${SONAR_HOME}/extensions/plugins
重启 SonarQube
docker-compose restart
SonarQube 扫描 Java 代码的更多相关文章
- sonarqube扫描安卓代码
代码才用https://github.com/liwanlei/bilibili-android-client 配置: build.gralde配置 buildscript { repositorie ...
- Sonar规范扫描Java代码暴露的问题
字符串和封装类型应使用 equals()进行比较 例如java.lang.Integer使用引用等于==或!=,因为它不是比较实际值,而是比较内存中的位置. String firstName = ge ...
- sonar扫描java、js、jsp技术
最近在弄sonar扫描的事情,之前一直只能扫描java代码,这样统计出来的数据上报领导很多开发人员不服(说我不用写jsp了不用写js了?), 那么好,于是乎继续整sonar,在官网中看到sonar其实 ...
- SonarQube部署及代码质量扫描入门教程
一.前言 1.本文主要内容 CentOS7下SonarQube部署 Maven扫描Java项目并将扫描结果提交到SonarQube Server SonarQube扫描报表介绍 2.环境信息 工具/环 ...
- 静态代码扫描之阿里java代码规范IDEA插件
前言 2017年2月9日,首次公布<阿里巴巴Java开发手册>; 2017年9月25日,阿里巴巴集团发布了<阿里巴巴Java开发手册>PDF终极版; 2017年10月14日,在 ...
- 阿里巴巴Java开发手册及Java代码规约扫描eclipse插件
一.github地址: https://github.com/alibaba/p3c 二..eclipse插件的安装 此处示例采用eclipse,版本为 Neon.1 Release RC3 (4.6 ...
- Azure DevOps Server(TFS 2019) 中的SonarQube扫描任务出现错误:AppTest.java can't be indexed twice
SonarQube错误描述 将一个Maven示例程序导入到Azure DevOps的待库中,执行SonarQube扫描过程时, DevOps Server提示下面的错误信息: [ERROR] Fail ...
- SonarQube安装Java扫描插件
近段时间在研究sonarqube,成功扫描python项目,但是扫描java项目失败. 在网上查询到,扫描java项目需要安装Java插件. 如下图: 而我在最新的sonarqube中搜索java,没 ...
- Jenkins 使用 SonarQube 扫描 Coding
Jenkins 使用 SonarQube 扫描 Coding 系统环境: Jenkins 版本:2.176 SonarQube 版本:7.4.0 一.SonarQube 介绍 1.SonarQub ...
随机推荐
- 公众号迁移 原有数据库openid 更新主体openid
今天一个两年前做的公众号项目 要更改主体,随之而来的是公众号的迁移. 公众号迁移后关注的粉丝也会对应的进行迁移,还会给粉丝发送相关通知. 大体流程如下图 迁移的具体步骤我就不细说了.今天主要说的是 迁 ...
- Ethical Hacking - GAINING ACCESS(8)
Server Side Attacks NeXpose - configure and launch a scan Configure and initialize the application. ...
- Ethical Hacking - NETWORK PENETRATION TESTING(7)
Gaining Access to encrypted networks Three main encryption types: 1. WEP 2.WPA 3.WPA2 WEP Cracking W ...
- node.js day01学习笔记:认识node.js
Node.js(JavaScript,everywhere) 1.Node.js 介绍 1.1. 为什么要学习Node.js 企业需求 + 具有服务端开发经验更好 + front-end + back ...
- Vue全家桶之一Vue(基础知识篇)
全家桶:Vue本身.状态管理.路由. 异步组件:
- sqlserver——merge用法
merge集插入,更新,删除于一体,如果要对一个表同时进行插入,更新,删除2个或3三个操作.效率要高于单个操作. merge into tableb b --被操作表using (select id, ...
- JS内存机制
在看JS内存机制之前我们先来看一下JS是门什么样的语言,他又有哪些变量类型. 动静态,强弱类型 静态:在使用之前就需要确认其变量数据类型. 动态:在运行过程中需要检查数据类型. 强类型:不支持隐式类型 ...
- 性能1.84倍于Ceph!网易数帆Curve分布式存储开源
在上周刚结束的网易数字+大会上 网易数帆宣布: 开源一款名为Curve的高性能分布式存储系统, 性能可达Ceph的1.84倍! 网易副总裁.网易杭州研究院执行院长兼网易数帆总经理汪源: 基础软件的能力 ...
- centos7 安装 isign
centos应该自带python和openssl,这两个就不用装了, 先安装zip和git yum install -y unzip zip yum install git 然后克隆代码: https ...
- Java复习总结(二)Java SE 面试题
Java SE基础知识 目录 Java SE 1. 请你谈谈Java中是如何支持正则表达式操作的? 2. 请你简单描述一下正则表达式及其用途. 3. 请你比较一下Java和JavaSciprt? 4. ...