首页 > 其他分享 >sonarqube静态代码扫描工具常见用法

sonarqube静态代码扫描工具常见用法

时间:2024-02-05 23:22:27浏览次数:35  
标签:java scanner sonarqube 扫描 Dsonar token SonarQube sonar 用法

  1. 安装服务器端的sonarqube
    下载地址:https://www.cnblogs.com/cxygg/p/18008738

  2. 客户端有很多种比如SonarScanner CLI,Jenkins extension for SonarQube,SonarScanner for Maven,sonarlint等

  3. 创建项目后获取token
    image-20240205202335888

    image-20240205202355943
    image-20240205202412283

  4. SonarScanner CLI 的使用

    • 下载地址

    • 解压后修改配置文件
      sonar-scanner-5.0.1.3006-windows\conf

      #Configure here general information about the environment, such as SonarQube server connection details for example
      #No information about specific project should appear here
      
      #----- sonarqube服务器地址和项目token
      sonar.host.url=http://192.168.100.66:9000
      sonar.login=sqp_480f5126ff99c9208c21f3a3db21bb7f5e0cc23b
      
      #----- Default source code encoding
      sonar.sourceEncoding=UTF-8
      
      
      
    • 把sonar-scanner-5.0.1.3006-windows\bin目录加入到环境变量path

    • 在项目代码根目录创建当前项目的配置文件

      sonar-project.properties

      #项目的唯一标记
      sonar.projectKey=TestExample
      
      #项目的名字
      sonar.projectName=TestExample
      
      #项目的版本呢
      sonar.projectVersion=1.0
      
      #代码路径,.表示当前路径
      sonar.sources=.
      #编码
      sonar.sourceEncoding=UTF-8
      #代码语言
      sonar.language=java
      #二进制文件目录,这是要跳过的
      sonar.java.binaries=target/classes
      
      
    • 启动cmd 在 sonar-project.properties所在的目录执行 sonar-scanner开心静态代码扫描
      实际上是连接到sonarqube服务器取到扫描规则,然后scanner扫描代码,扫描完成以后上传结果到soanrqube服务器。

      image-20240205203322242

    • 如果啥都不配置也可以直接命令行指定参数执行

      -Dsonar.token 或者-Dsonar.login=账号-Dsonar.password=密码,都能指定授权

      #使用token
      sonar-scanner -Dsonar.projectKey=TestExample -Dsonar.host.url=http://192.168.100.66:9000 -Dsonar.token=sqp_958bf014e49777742cc027d6fddf70cd1941ec39 -Dsonar.sources=.  -Dsonar.java.binaries=.\target -Dsonar.java.source=8 -Dsonar.sourceEncoding=UTF-8
      
      #使用账号密码邓丽
      sonar-scanner -Dsonar.projectKey=TestExample -Dsonar.host.url=http://192.168.100.66:9000 -Dsonar.login=admin -Dsonar.password=admin123 -Dsonar.sources=.  -Dsonar.java.binaries=.\target -Dsonar.java.source=8 -Dsonar.sourceEncoding=UTF-8
      
  5. SonarScanner for Maven 的使用

    <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://myserver:9000
                    </sonar.host.url>
                </properties>
            </profile>
         </profiles>
    </settings>
    
    clean verify sonar:sonar   -Dsonar.projectName=Maven-demo -Dsonar.projectKey=Maven-demo  install
    
  6. Jenkins extension for SonarQube 的使用

  7. sonarlint的使用

    这是一个idea插件,安装插件以后,尅开始分析

    这种方式不会上传检查结果,只是拉取服务器的规则,方便代码中定义缺陷
    image-20240205214713947
    image-20240205214927014

标签:java,scanner,sonarqube,扫描,Dsonar,token,SonarQube,sonar,用法
From: https://www.cnblogs.com/cxygg/p/18008997

相关文章

  • centos7安装sonarqube
    sonarqube里面使用了ES,ES不允许root用户运行,所以开启前创建一个非root用户useraddzhangyukunsuzhangyukunJava环境,如果需要把之前的java的安装包移动到运行用户可以读取到的地方,并且环境变量也要匹配保证java包的权限和所在路径的权限至少是755下载下载地址:htt......
  • 扫描线
    扫描线的精髓是通过离线、引入时间维,把静态询问降低一维、变成动态问题。一般是先把若干询问通过可减性变成前缀询问,再离线、从左到右排序,从左到右一个一个地一边加入元素,一边回答询问。以下是例题+一句话题解。(虽然可能不是真的一句话)平面最值二维平面上\(n(\le10^5)\)个......
  • [office] 学会LOOKUP函数这个高级用法,多条件查询就很容易了!
    如下表,是某快递公司价格表,每当查询价格时,会涉及很多条件,始发地、目的地、重量区域等,在全部条件判断完之后,还得与最低价进行比较,取两者之间的最大值。价格表如下:查询表如下:举例,始发地为义乌,目的地是北京,重量为1680.57,对应价格为1.6。金额为:=1680.57*1.6,算出金额之后,再与最低价200相......
  • Python elasticsearch-py类库基础用法
    实践环境https://pypi.org/project/elasticsearch/pipinstallelasticsearch==7.6.0离线安装包及依赖包下载地址:https://files.pythonhosted.org/packages/f5/71/45d36a8df68f3ebb098d6861b2c017f3d094538c0fb98fa61d4dc43e69b9/urllib3-1.26.2-py2.py3-none-any.whl#sha256=d8ff9......
  • Nexpose v6.6.236 for Linux & Windows - 漏洞扫描
    Nexposev6.6.236forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,ReleaseFeb02,2024请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • lua 语法介绍与 NGINX lua 高级用法实战操作
    目录一、概述二、lua安装三、lua语法1)lua数据类型2)lua变量3)lua拼接字符串4)lua循环5)lua函数6)lua条件控制7)lua库模块四、NGINXlua高级用法一、概述lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活......
  • std::optional用法
    目的:用于处理异常值,可将异常值导出,不用设置中途退出用法:文件包含optional函数返回值为std::optional<T>(注意:T&不可以,但T*可以),异常值使用std::nullopt用std::optional<T>接收数据结果,.has_value()判断结果是否异常,.value()显示结果.value_or(num)可以设置异常时的......
  • CF522D Closest Equals 离线扫描 + 线段树
    CF522DClosestEquals题意:m个询问,求[l,r]内相同元素的最小距离。离线询问,按右端点排序。对于每一个a[i],如果last[a[i]]存在,将线段树last[a[i]]的位置改为i-last[a[i]]。查询区间最小值。当然这题也可以回滚莫队。注:本题一路从黑题堕落到绿题#include<bits/stdc......
  • 网络安全之漏洞扫描
    漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。这些缺陷、错误或不合理之处可能被有意或无意地利用,从而对一个组织的资产或运行造成不利影响,如信息系统被攻击或控制,重要资料被窃取,用户数据被篡改,系统被作为入......
  • delphi TThread.WaitFor 用法
    在Delphi中,TThread.WaitFor方法用于等待一个线程完成执行。当你创建一个线程并希望主线程(或其他线程)等待这个线程结束时,你可以使用这个方法。以下是TThread.WaitFor方法的基本用法:创建一个线程类:首先,你需要从TThread派生一个类,并重写其Execute方法。这个方法是你线程......