java 静态扫描_静态代码扫描工具 – (八)- 扫描Java项目

article/2025/10/24 12:35:30

静态代码扫描工具 – (八)- 扫描Java项目

1、准备好Java项目代码

只要是java语言实现的项目均可。

比如,自动化测试的代码,测试平台等均可以。

本次案例,使用java语言实现的测试平台来做为扫描对象。

20200721171955-5f1723bb6fad7.png

2、了解java项目代码的结构。

为什么要了解项目代码结构呢?

1)区分出来,哪些是开发人员写的代码,哪些是引用的第三方包或配置文件等。

2)sonarQube主要是分析开发人员写的代码质量,对于外部的依赖库这些全部都可以忽略掉。

经过与开发人员的沟通,上图中的代码当中,有如下说明:

20200721171957-5f1723bd1a80e.png

3、在项目根目录下,配置扫描数据。

3.1 在项目下:添加 sonar-project.properties 文件

20200721171959-5f1723bf9fed1.png

3.2 copy以下内容到sonar-project.properties当中

# must be unique in a given SonarQube instance

sonar.projectKey=my:project

# --- optional properties ---

# defaults to project key

#sonar.projectName=My project

# defaults to 'not provided'

#sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Defaults to .

#sonar.sources=.

# Encoding of the source code. Default is default system encoding

#sonar.sourceEncoding=UTF-8

3.3 配置sonar.projectKey

​ 1、sonar.projectKey(必填): 的值为你的项目名称,是会显示在sonarQube管理平台上的。

​ 要求在SonarQube当中,项目key名唯一。其它项目不能够再取这个名字。

​ 2、sonar.projectName:项目名称。一般与key名一致。

​ 3、sonar.sources: 项目下有多个目录。可以指定要扫描的源码目录。

​ 主要目的是扫描团队当中开发人员编写的代码 。所以可以根据项目情况来指明。

​ 4、sonar.sourceEncoding:指定源码的编码格式,一般都会去指定为UTF-8。

​ 5、sonar.java.binaries(必填):指定java文件编译后class文件目录。

​ 6、sonar.language:指定在扫描当中,只扫描的语言。

20200721172000-5f1723c0be3c9.png

4、启动扫描。

启动方式:在项目的根目录下,运行sonar-scanner命令

20200721172002-5f1723c2abd46.png

等待任务扫描完成。

20200721172005-5f1723c5239ae.png

在扫描任务完成之后,sonarQube需要将其扫描结果写入数据库,需要一定的时间。

扫描的代码量越大,写入数据库的时间相对的也要长一点。

5、在sonarQube上查看扫描结果。

在sonar-scanner提示扫描完成之后,访问sonarQube地址( http://localhost:9000/projects ),会看到有1个后台任务正在执行中。

等待sonarQube的后台任务处理完成,再去查看项目分析结果:

20200721172008-5f1723c8f0d71.png


http://chatgpt.dhexx.cn/article/b9SgbbTs.shtml

相关文章

Android和iOS静态代码扫描工具

Android 名称 来源 功能特点 检查SQL注入 检查NullPointException 支持IDE情况 Android Lint Android SDK 针对Android,检查范围广 否 是 Eclipse、Android Studio FindBugs 国外 针对Java程序,失去对Android特性的检查 否 是 Eclipse、…

[C++]TscanCode代码扫描工具

TscanCode介绍 TscanCode 是腾讯研发的静态代码扫描工具,最早的版本是基于 cppcheck 二次开发。之后又重新自研,不仅支持 C,还支持 C#,Lua 语言,在发掘 C 空指针、越界、未初始化、C#空引用、Lua变量未初始化等比较有…

源代码扫描工具

1. DMSCA-企业级静态源代码扫描分析服务平台 系统架构 客户可以通过Internet或者局域网络 从浏览器、Eclipse、Visual Studio 、命令行 、甚至 Web 服务访问DMSCA 服务平台,上传扫描代码,选择扫描策略,自动化扫描, 并利用平台可视…

Fortify代码扫描工具

一、Fortify介绍 Fortify是一款强大的静态代码扫描分析工具,其发现代码漏洞缺陷的能力十分强悍,主要是将代码经过编译,依托于其强大的内置规则库来发现漏洞的。其次fortify SCA团队在开发此商业工具时,也提供了自定义规则的…

四款优秀的源代码扫描工具简介

转载于:https://www.cnblogs.com/xiaominggong/archive/2019/05/06/10821005.html 一、DMSCA-企业级静态源代码扫描分析服务平台 端玛企业级静态源代码扫描分析服务平台(英文简称:DMSCA)是一个独特的源代码安全漏洞、质量缺陷和逻…

SonarQube代码扫描工具

SonarQube(社区版) SonarQube是一个用于代码质量管理的开放平台,通过插件机制,SonarQube可以集成不同的测试工具,代码分析工具,以及持续集成工具,例如Hudson/Jenkins等。 sonarqube的七个维度检测代码质量: 复杂度分布:代码复杂度过高将难以理解重复代码:程序中包含…

java代码扫描工具比较_代码扫描工具的选型和Sonar最佳实践

目标 在编码阶段发现NNE空指针异常、IO流未正确关闭等致命性bug,杜绝此类“零容忍”线上异常的发生。 技术选型 关于代码扫描工具,比较主流的有Sonar、FindBugs、Alibaba Java Coding Guidelines、CheckStyle。 Alibaba Java Coding Guidelines最大的优点是全中文的提示,对国…

静态代码扫描工具汇总

一、概述 在软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。传统的代码评审、同事复审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情。而静态代码扫描工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时…

用户行为序列推荐模型

导读:今天我们谈谈用户行为序列上的推荐模型。首先我们对序列推荐问题做一个定义和描述,然后主要讲述可以用在序列推荐任务中的 NN 模型,最后给出一点个人看法以及文中相关的参考文献供参阅。 用户行为大多数情况下都是存在时间上的先后关系…

用户兴趣模型分类以及推荐系统技术调研

用户兴趣模型分类 根据用户之前在相关网站的行为数据记录分析出用户的兴趣和偏好,然后根据不同用户兴趣和偏好不同为其推荐不同的内容,这种新的信息获取方式被称为个性化推荐技术。 个性化新闻推荐系统中常用的几种用户兴趣建模方法: &…

用户生命周期模型

本文转载自: https://blog.csdn.net/l18930738887/article/details/50818878 一、为什么要定义用户生命周期? 用户生命周期是为了定位每个用户在哪个阶段,对于某个阶段的用户进行不同的营销策略。比如初期用户:还没有养成使用习…

Django重写User模型修改明文密码加密方法

由于继承Django的User列表会导致创建新用户的密码为明文,导致无法正常登陆,因此需要修改adminx中的部分配置实现原始的用户密码记录功能。 从这样的界面进入注册用户的密码就是加密的密码效果了,否则是显示明文密码非加密状态。 文章目录 实现步骤实现步骤 需要在项目的m…

【模型理解】KANO模型

前言 在大量的需求需要进行迭代时,由于时间、人力、财力等相关因素干扰,无法在有限的时间内容对所有的需求进行满足,此时需要我们对需求进行优先级的排列。最大化的合理的提高有限资源的使用。 在常见的产品优先级区分的方式有时间四象限模…

软件工程的十大模型

1.软件生命周期模型 软件生命周期由软件定义、软件开发与运维(也称软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。 问题定义:“要解决的问题是什么?”通过对客户的访问调查,系统分析员扼要地写出…

SaaS用户管理系统模型设计

最近一直在研究关于SaaS化的用户管理系统,现将项目中的模型做一整理,先贴图: 图中黄色方框:租户/组织、部门、员工 完成的是对整个组织结构及结构中人员分布的管理; 图中绿色方框:系统用户(包括…

认识每一个“你”:微博中的用户模型

社交媒体(Social Media)相对于传统互联网媒体的最大区别是通过建立人与人之间的联系,极大提升了信息生产量以及传播效率。身处社交媒体中的每个人或组织同时扮演着信息生产者、传播者与接受者的角色。 在社交媒体背景下,用户生产…

Django默认用户模型类和父类 AbstractUser 介绍

Django默认用户模型类 Django 框架默认使用一个 User 模型类, 保存有关用户的数据。 例如: 我们定义 admin 站点时, 定义的超级用户信息, 就是存储在 User 模型类对应的表中。 我们可以通过 select * from auth_user; 查看数据表。 这个表里就是我们保存的管理员信息,是由用户…

RFM用户分层模型|原理+Python全流程实现

RFM 模型 在数据分析中经常会进行用户分层,本文我们来了解一下常见的用户分层模型RFM。 RFM概念 RFM是由R(Recency)、F (Frequency)、 M(Monetary) 三个维度构成的,其具体含义如下: R:最近一次消费时间间隔 F:消费频…

用户增长——AARRR模型

AARRR模型是做用户分析的经典模型之一。它以完整的用户生命周期为线索,描述了用户使用产品需经历的五个环节,最终获取商业价值。什么是AARRR模型? AARRR是由五个单词的首字母组成,分别代表【获取、激活、留存、收入、传播】五个阶…

如何定义用户模型(persona)

一、什么是用户模型? Persona([pə:səunə]):(Persona是用户模型的的简称)是虚构出的一个用户用来代表一个用户群。一个persona可以比任何一个真实的个体都更有代表性。一个代表典型用户的persona的资料有性别、年纪、收入、地域…