linux代码_Sonar代码走查的配置(linux)

SonarQube是一个静态代码质量检查工具,可以检查出代码中明显或潜在问题。虽然偶尔它的判断会是错误的,但还是值得我们用。它能以比较基础的级别减少代码出错的可能,可以节省人工Review代码时间。它支持多种语言的检查。

我这里的代码是java代码,下面介绍linux系统中java代码的sonar配置方法。

方法一:使用sonar-scanner

  1. 下载与sonar-qube版本相配合的sonar-scanner,保存到服务器中。

sonar-scanne下载地址

https://binaries.sonarsource.com/Distribution/sonar-scanner-cli

2. 在代码根目录建立sonar-project.properties文件,内容如下:

    sonar.projectKey=com.company.projectkey1   # 项目标识sonar.projectName=My Project Name          # 项目名称,会显示在sonar检查结果的目录sonar.sources=.                            # 待检查的代码目录sonar.java.binaries=target/classes/        # 待检查的代码编译后class目录sonar.exclusions=**/*_test.go,**/vendor/** # 在排除的,不需要检查的目录

676ace15c2f85a2d5c1851e57a99ba64.png
sonar-project.properties

待检查的代码可以是全部代码,也可以是子目录,根据自己需要设置。多个目录时,用逗号隔开。

比如可以写成:sonar.sources=src/com/subsrc1,src/com/subsrc2

3. 编译代码。使用自己项目的编译命令

4. 在代码根目录执行sonar检查。由自己的SonarQube的版本和存在路径不同,下面的路径会有所有不同

sh /tools/sonar-scanner-2.8/bin/sonar-scanner

方法二(仅适用于maven管理的项目)

  1. 编译自己项目代码

mvn install

2. 执行sonar检查

mvn sonar:sonar -Dsonar.host.url=http://xxx.xxx.xxx.xxx:9000 -Dsonar.login=552977515c9433c9596d4fccb91b636782b7f959

参数说明: sonar.host.url sonar服务器的url,默认为http://localhost:9000

sonar.login sonar用户的认证token,获取方式见第3步。

更多的参数使用方法见官网说明:

https://docs.sonarqube.org/latest/analysis/analysis-parameters/

3. 获取sonar用户的认证token

前提:已搭建好了sonar服务器。

在浏览器中打开sonar的地址,点击右上角的“登录”,输入账号、密码后登录。

2015eb76f19285df766d7db639ac7a24.png
sonar登录

登录后,点击右上角登录后的账号,依次选择“我的账号->安全”

在“令牌”部分,点击“生成”,即可生成令牌,用于第2步的sonar.login参数。

1b4b6e9635e5f5b3a97fae272fc93b57.png
令牌生成

可能遇到的问题:

执行sonar检查时,提示如下内容

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

是由于使用方法一时,未在sonar-project.properties文件中配置sonar.java.binaries属性。

配置了这个属性后,问题就解决了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能计算之粒子群算法(PSO)介绍

目录 1. 简介(思想) 2. 研究发展 3. 算法步骤 4. 应用举例 5. 粒子群优化算法的改进研究 5.1 理论改进 5.2 拓扑结构改进 5.3 混合算法改进 5.4 离散版本改进 6. 相关应用 7. 参数设置​ 1. 简介(思想) 粒子群优化算法(Particle Swarm Optimization&…

passive模式 tcp_FTP主动模式和被动模式的比较

总是记不住FTP主动和被动模式的区别。放在这里,以备日后查阅。FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作方式…

Java 中 finally 与 return 的执行顺序详解

java方法是在栈幀中执行,栈幀是线程私有栈的单位,执行方法的线程会为每一个方法分配一小块栈空间来作为该方法执行时的内存空间,栈幀分为三个区域: 1 . 操作数栈,用来保存正在执行的表达式中的操作数,数据…

车辆工程用得到python吗_如今车辆工程真的不如以前了吗?

背景:合肥工业大学2015届毕业生,车辆工程专业,理科实验班,成绩排名专业10%以内,有推免研究生资格。 上面这些title虽然比不上985的,但在当年工大的各专业中,基本上是无敌的存在了。 然后当年我竟…

headfirstjava最新版本下载_读过HeadFirstJava的大神进来看看

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼线程一章有个聊天程序,我运行之后客户端没将服务器的内容显示在JTextArea中,求解答客户端程序import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.net.*;public…

python爬虫能秒杀么_面试题之用python爬取并夕夕不同时段秒杀商品信息

先上效果图吧(因为确实也是刚入门,很多细节没有注意到的,各位尽管提出来)并夕夕很多时候都在不停的有秒杀商品的活动,对于价格问题,我就没法讨论了,但是人家能吸引到这么多流量,真本…

Java throws和throw

throws 声明异常 当一个方法产生一个它不处理的异常时,那么就需要在该方法的头部声明这个异常,以便将该异常传递到方法的外部进行处理。使用 throws 声明的方法表示此方法不处理异常。throws 具体格式如下: returnType method_name(paramLi…

html 怎么让tr的css覆盖td的_通达OA上传漏洞之变量覆盖分析

作者:kw0ng开始通达OA上传到包含漏洞分析的文章已经有很多,本文重点分析,文件上传处决定路径信息是否回显的UPLOAD_MODE参数是怎么传递的。代码分析触发文件上传点位于/ispirit/im/upload.php中,服务端在接收文件信息的同时还需要…

怎么看电脑的hdmi是输出还是输入_高清hdmi矩阵切换器4进4出音视频方案介绍景阳华泰科技...

高清hdmi矩阵切换器4进4出多少钱?这就需要了解您需要哪种4进4出矩阵!景阳华泰科技生产的矩阵分为两种形式,一种是我们近几十年来一直使用的一体机,高清HDMI矩阵切换器4进4出采用一体机结构,经济实惠,功能较…

专业音频如何把电平转换成dbu_谭俊峰|录课、买麦,你应该了解的音频常识

近来,有打算录录课、吹吹牛,于是想升级一下硬件。既然要录音,那搞个好一点儿的麦克风总是必要的。于是,上网去查。不查不知道,一查吓一跳。为啥呢?既不为产品的琳琅满目,也不为价格的云泥之别&a…

android 自定义进度条_第一百八十九回:Android中自定义ProgressBar三

各位看官们大家好,上一回中咱们说的是Android中自定义ProgressBar的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!看官们,我们在上一回是通过自定义PrgressBar的方式给它添加了文字&…

Java信息验证

某仓库管理系统的登录界面中需要输入用户名和密码,其中用户名只能由 6~10 位数字组成,密码只能有 6 位,任何不符合用户名或者密码要求的情况都视为异常,并且需要捕获并处理该异常。 下面使用自定义异常类来完成对用户登录信息的验…

沉降观测曲线图 沉降观测汇总_这些沉降观测要求,工程人必须掌握!

1沉降观测的基本要求 1)仪器设备、人员素质的要求根据沉降观测精度要求高的特点,为能精确地反映出建(构)筑物在不断加荷下的沉降情况,一般规定测量的误差应小于变形值的1/10—1/20,为此要求沉降观测应使用精密水准仪(S1或S05级),水…

rgb红色范围_【论文阅读18】RGB-D Object-Oriented Semantic Mapping

主要内容基于RGB-D数据的语义建图(SLAM帮助语义)。具体过程如下首先利用SSD执行单帧RGB图片(2D)物体检测。接着基于检测结果和深度信息,利用3D分割算法进一步分割3D点云。最终利用ORB-SLAM2的相机位姿信息将每帧的3D点…

Java的异常跟踪栈

异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程。 看下面用于测试 printStackTrace 的例子程序。 class SelfException extends…

7价 半导体掺杂_掺杂工艺(一)

概述半导体材料的独特性质之一是它们的导电性和导电类型(N型或P型)能被产生和控制。在本章中,描述在晶圆内和表面上特别的小块导电区和PN结的形成。介绍扩散和离子注入两种掺杂技术的原理和工艺。简介使晶体管和二极管工作的结构就是PN结。结(junction)就是富含电子…

数据增强_imgaug图像数据增强必备工具

导读我们经常会遇到训练模型时数据不够的情况,而且很多时候无法再收集到更多的数据,只能通过做一些数据增强或者其它的方法来合成一些数据。常用的数据增强方式有裁剪、旋转、缩放、亮度对比度色度饱和度变换、仿射变换、透视变换等,这篇文章…

Java类的封装

封装将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问。 封装的特点: 只能通过规定的方法访问数据。隐藏类的实例细节,方便修改和实现。实现封装的具体步骤如下&#xff…

python 公众号菜单_Python脚本--微信公众号自定义菜单的创建及获取

#-*- coding: utf-8 -* importtkMessageBoximporturllib2importjsonimportsys reload(sys) sys.setdefaultencoding(UTF-8) appID wxa46e26b3d591f9f2 //测试号信息 appsecret 83ee70dbb6dbc1e090971554b1c7981b //同上 menu { //菜单信息,包括一级菜单和二级菜单&q…

深度学习多模态融合_3D目标检测多模态融合综述

0前言本篇文章主要想对目前处于探索阶段的3D目标检测中多模态融合的方法做一个简单的综述,主要内容为对目前几篇几篇研究工作的总结和对这个研究方面的一些思考。在前面的一些文章中,笔者已经介绍到了多模态融合的含义是将多种传感器数据融合。在3D目标检…