首页 > 其他分享 >Maven整合Sonar进行代码审查

Maven整合Sonar进行代码审查

时间:2024-04-09 17:27:16浏览次数:18  
标签:Terminal 审查 Maven sonar token test Sonar

项目中使用到了Sonar代码扫描,现记录整合过程以及遇到的问题如下(需要说明的是本文只记录整合时的步骤,并不包括Sonar安装过程):

1.利用sonar生成token

本步骤主要是为了生成后续Maven中需要配置的认证信息,如果已生成过token,可以直接跳过此步骤。

1.1登录sonar并进入我的账号

1.2进入安全页面

1.3输入令牌名称生成令牌

1.4将token复制并保存下来

2.配置Maven项目中的POM文件

2.1在父POM文件中的<plugins>标签中加入sonar插件

加入代码如下:

 <plugin>
     <groupId>org.sonarsource.scanner.maven</groupId>
     <artifactId>sonar-maven-plugin</artifactId>
     <version>3.9.0.2155</version>
</plugin>

2.2在父POM文件中的<properties>标签中加入sonar地址和token令牌配置
<!-- SonarQube服务器地址-->
<sonar.host.url>sonar服务器地址</sonar.host.url>
<!-- 访问令牌或⽤户名密码 -->
<sonar.login>对应token</sonar.login>

3.运行Maven命令

3.1正常情况下运行命令

如果你是用的命令行执行下面命令,而不是和我一样,直接使用IDEA的Terminal,那么以下命令是可以正常执行的:

mvn clean verify sonar:sonar -Dmaven.test.skip=true

其中-Dmaven.test.skip=true代表跳过单元测试并且不编译测试用例类,也有人会使用mvn clean verify sonar:sonar -DskipTests,其中-DskipTests代表不执行单元测试但编译测试用例类生成相应的class文件至target/test-classes下,由于我所在的项目规模较大,没必要每次编译后都进行单元测试,所以使用的是前一种方案。

如果使用的是IDEA的Terminal,那么由于Terminal打开的是PowerShell窗口,你应该会遇到下面的错误:

所以请执行以下命令用以替代:

mvn clean verify sonar:sonar  --% -Dmaven.test.skip=true

3.2命令执行完成后查看扫描结果

如果你看到以下信息,则说明扫描成功(可以看到项目是比较大的,运行上面的命令花费了24分钟):

如果想要查看Sonar报告,请向上翻滚命令行,找到如下页面:

点击第一个链接,即可进入Sonar报告页面

4.遇到的问题

4.1本机装有多个不同版本的Maven,在IDEA里面设置了项目使用的Maven,但在Terminal里面执行命令的却是另一个不同版本的Maven

该问题是由于我在系统变量里面配置的默认Maven是第二个Maven,但在项目里使用的是第一个Maven。在Terminal以及命令行里面使用的是默认Maven,也就是第二个Maven。这个问题导致我无论怎么修改第一个Maven的setting文件,执行mvn clean verify sonar:sonar  --% -Dmaven.test.skip=true命令下载第三方依赖时总是使用的默认Maven的setting文件,导致下载失败。

4.2Maven总是尝试从

标签:Terminal,审查,Maven,sonar,token,test,Sonar
From: https://www.cnblogs.com/binliexc/p/18124345

相关文章

  • maven--一起学习吧之架构
    一、maven是什么Maven是一个项目管理和构建自动化工具,主要用于Java项目。它由Apache软件基金会所提供,不仅是一个构建工具,还是一个依赖管理工具,并且可以通过一套简洁的XML文件来描述项目信息,然后Maven就可以自动执行项目的构建过程。Maven的主要功能包括:依赖管理:Maven可以自......
  • maven中 Uber-jar 名词介绍
    Uber-jar在maven的一些文档中我们会发现"uber-jar"这个术语,许多人看到后感到困惑。其实在很多编程语言中会把super叫做uber(因为suber可能是关键字),这是上世纪80年代开始流行的,比如管superman叫uberman。所以uber-jar从字面上理解就是super-jar,这样的jar不但包含自......
  • 1. 什么是Maven
    1.Maven的概念它是一个一键式的自动化的构建工具.Maven是目前最流行的自动化构建工具,对于生产环境下多框架、多模块整合开发有重要作用,Maven是一款在大型项目开发过程中不可或缺的重要工具。2.为什么要使用Maven首先,Maven可以自动的帮助我们下载jar包.其次可以进行......
  • centos 安装 maven
    1.下载wgethttps://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz --no-check-certificate2.解压tar-zxvfapache-maven-3.8.8-bin.tar.gz 3./etc/profile配置环境变量exportMAVEN_HOME=/root/apache-maven-3.8.8exportPATH=$JAVA_HO......
  • 法规 - 医疗器械网络安全注册审查指导原则(2022年修订版)
    医疗器械网络安全注册审查指导原则(2022年修订版)2022年3月9日,为进一步规范医疗器械网络安全的管理,国家药监局器审中心组织制定了《医疗器械网络安全注册审查指导原则(2022年修订版)》,并于今日发布。本指导原则旨在指导注册申请人规范医疗器械网络安全生存周期过程和准备医疗器械网......
  • springboot 与jdk与maven与gradle 对应版本
      SystemRequirementsSpringBoot3.2.4requires Java17 andiscompatibleuptoandincludingJava22. SpringFramework6.1.5 oraboveisalsorequired.Explicitbuildsupportisprovidedforthefollowingbuildtools:BuildToolVersionMa......
  • 狂神说Java Web学习笔记_Maven
    Maven项目架构管理工具我们目前用它就是为了方便导入jar包,可以帮你自动导入一个jar包所依赖的其他jar包。Maven的核心思想:约定大于配置配置环境变量配置阿里云加速镜像maven安装目录的conf/settings.xml在<mirrors></mirrors>标签中添加mirror子节点<mirrors......
  • 02-Maven安装
     1. Maven软件的下载使用Maven管理工具,我们首先要到官网去下载它的安装软件。http://maven.apache.org/download.cgi这里注意:maven3.6.3的版本相对比较稳定,建议使用(下面是maven3.6.3版本)官网链接:Indexof/dist/maven/maven-3/3.6.3/binaries(apache.org)百度网盘......
  • 01-Maven介绍
         ......
  • java计算机毕业设计(附源码)原创网络文学管理系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义标题:原创网络文学管理系统的开发背景在数字化时代背景下,网络文学作为一种新兴的文学形式,以其便捷、互动性强的特点迅速崛起,成为文化消费的重要领域。随着网络文学......