maven工程使用sonar扫描代码

基础环境

SonarQube 8.2
maven3.3.6
jdk:1.8

配置项目

创建项目
登录后右上角+号创建新项目
在这里插入图片描述填写项目名称及标识

在这里插入图片描述创建token
在这里插入图片描述下一步

在这里插入图片描述选择项目类型
在这里插入图片描述以上就已提供maven插件执行命令(注意’\'是换行的意思,部分shell执行前需要删掉并去掉换行)

配置setting.xml(与配置项目pom.xml二选一)

注意:此项非必须
sonar插件在不配置的情况也是可以用的,如果每次不想带url、token等参数,而想简单的执行[mvn sonar:sonar]则需要在setting.xml将sonar信息配置进去

<settings>
	<!-- pluginGroups也可以不配置 -->
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
            	<!-- 平台登录的账号的用户名
                   <sonar.login>admin</sonar.login> -->
                   <!-- SonarQube平台登录的账号的密码
                  <sonar.password>admin</sonar.password>-->
                <!-- 全局配置的情况建议使用用户名密码的形式 -->
                <sonar.projectKey>
                  e71f9c0248f4e299abea623f1fa81ff99eb62477
                </sonar.projectKey>
                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.host.url>
                  http://myserver:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
     <!-- 官方未配置activeProfiles 但是个人建议配置上 -->
     <activeProfiles>
     	<!-- 这步配置,sonar的profile配置才能生效 -->
		<activeProfile>sonar</activeProfile>
     </activeProfiles>
</settings>

配置完成后执行如下命令即可扫描

mvn sonar:sonar

配置pom.xml(与配置setting.xml二选一)

如果不想修改setting.xml,可考虑在pom文件里直接引入sonar插件即可
在project->build->plugins 下增加如下插件

	<!-- sonar插件 -->
	<plugin>
		<groupId>org.sonarsource.scanner.maven</groupId>
		<artifactId>sonar-maven-plugin</artifactId>
		<version>3.7.0.1746</version>
	</plugin>

重新编译即可使用sonar,需要注意的是sonar插件未传递token(或者username/password)、host、prokectKey时,需要在执行mvn sonar:sonar时带上(参考:执行扫描任务

执行扫描任务

最新的maven执行以下命令无需配置setting.xml

mvn sonar:sonar -Dsonar.projectKey=n-demo -Dsonar.host.url=http://192.168.1.17:9000 -Dsonar.login=e71f9c0248f4e299abea623f1fa81ff99eb62477

查看结果

登录sonar服务,即可看到项目分析结果
在这里插入图片描述

### 使用SonarQube扫描项目以检测代码的注释覆盖率 #### 配置环境 为了确保SonarQube能够正常工作并准确报告注释覆盖率,需确认安装了适当版本的Java Development Kit (JDK)[^1]。对于SonarQube 9.8及以上版本,建议使用JDK 11或更高版本。 #### 安装与配置SonarScanner 要使SonarQube能识别项目的注释情况,通常需要通过SonarScanner来提交待测代码SonarQube服务器进行分析。可以通过Maven、Gradle插件或是独立下载SonarScanner CLI工具来进行设置[^2]。 #### 设置Vue.js前端项目中的`sonar-project.properties` 针对基于Vue框架构建的应用程序,在根目录下创建名为`sonar-project.properties`的文件,并加入如下配置项: ```properties # 必填参数:定义项目键名 sonar.projectKey=my_vue_app_key # 可选参数:指定项目名称,默认同key相同 sonar.projectName=My Vue Application # 必填参数:指明源码路径;多个路径间用逗号分隔 sonar.sources=src/ # 启用JavaScript规则集 sonar.javascript.lcov.reportPaths=coverage/lcov.info # 对于Vue单文件组件的支持 sonar.web.typescript.enabled=true sonar.vue.enableJsx=true ``` 上述配置允许SonarQube理解Vue特有的`.vue`文件结构以及其中嵌入的语言特性。 #### 运行测试获取覆盖数据 在执行实际的静态分析之前,应该先运行单元测试套件收集必要的覆盖率统计数据。这一步骤产生的LCOV信息会被用来增强最终的质量评估结果。对于采用Karma作为测试驱动器的情况,可以添加相应的 reporter 插件生成兼容格式的结果文件。 #### 发起SonarQube扫描请求 一旦准备就绪,就可以利用命令行发起一次完整的扫描操作: ```bash sonar-scanner ``` 此指令将会触发一系列动作,包括但不限于上传源代码至远程服务端实例、启动背景作业处理任务直至完成整个流程。期间可能会经历短暂延迟直到所有步骤都顺利结束。 #### 查看结果 当一切完毕之后,打开浏览器访问部署有SonarQube的服务地址(通常是http://localhost:9000),登录后导航到对应应用页面即可浏览详细的统计图表和违规事项列表。特别关注“Reliability Rating”下的“Comment Lines Density”,该指标反映了当前工程内有效注解的比例水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值