Sonar:File */Application.java can‘t be indexed twice. Please check that inclusion/exclusion patterns

编程入门 行业动态 更新时间:2024-10-11 19:21:28

Sonar:File */<a href=https://www.elefans.com/category/jswz/34/1771332.html style=Application.java can‘t be indexed twice. Please check that inclusion/exclusion patterns"/>

Sonar:File */Application.java can‘t be indexed twice. Please check that inclusion/exclusion patterns

项目场景:

公司让用sonar集成git扫描代码,环境都搭建好了,但是sonarCube执行任务时报错:

File */Application.java can’t be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files


问题描述

能到这一步说明环境已经配置好了,只是sonarCube执行时发现错误,报错的中文意思是:

文件*/Application.java(包路径)不能被索引两次。请检查包含/排除模式是否为主文件和测试文件生成不相交的集合

下面是我.gitlab-ci.yml配置内容

#定义 stages(阶段),任务根据这里的顺序执行
stages:- sonarqube_scan# 定义job(任务),多个任务分开定义
sonarqube_scan_job:#阶段,取自开始的stagesstage: sonarqube_scan#定义该job执行的脚本#注意-Dsonar.host.url 是sonarqube服务器地址#-Dsonar.login 是sonarqube服务器地址账号#-Dsonar.password 是sonarqube服务器地址密码#-Dsonar.java.binaries=. sonar4.12版本之后,分析java代码需要提供该参数。#-Dsonar.projectName=$CI_PROJECT_NAME -Dsonar.projectKey=$CI_PROJECT_NAMEscript:- sonar-scanner-Dsonar.language=java-Dsonar.java.source=1.8-Dsonar.java.binaries=.-Dsonar.projectKey=lc-sonar-scan #你项目名称-Dsonar.host.url="你sonar的地址http://127.0.0.1:9080/sonar"-Dsonar.sources=lc-sonar-scan/src,lc-sonar-scan #扫描项目路径-Dsonar.exclusions=**/src/main/resources/** #不扫描的路径-Dsonar.login=test-Dsonar.password=test#标签,只有这个标签的runner才会执行任务;在gilab-runner注册时填写的tag-listtags:- olap #这个是你runner的标签when: always #只有指定的分支提交才会执行only:- master  # 设置你扫描代码的分支

原因分析:

根据中文意思可以发现是 Application.java这个启动类 被扫描了俩次,这个类只能扫描一次,所以我们把问题定位到了扫描路径这里,也就是上边配置的Dsonar.sources 属性(sonar扫描的代码路径)

问题定位如下

 -Dsonar.sources=lc-sonar-scan/src,lc-sonar-scan #扫描项目路径

发现这里配置了俩重复路径全是 lc-sonar-scan
sonarCube按照这个路径扫描的话,Application.java这个启动类果真重复扫了俩次


解决方案:

修改Dsonar.sources 这个属性的值 (修改扫描的路径配置) 删除多余路径

修改如下:

-Dsonar.sources=lc-sonar-scan/src

成功解决!

温馨提示:

  • 解决问题一定要看报错提示,根据报错提示找问题,一个一个解决,这里我遇到的是 Application.java
    被扫了俩次,看其他帖子有文件 AppTest.java 被扫了俩次 大家也可能遇到其他路径被扫了俩次
    一定要根据自己的实际情况来,看具体是那个文件,然后看这个文件所在目录,修改Dsonar.sources或者Dsonar.exclusions这俩属性,应该就可以解决了。
    总结一下: Dsonar.sources--------------------------设置sonar要扫描的路径
    Dsonar.exclusions-----------------------设置sonar不扫描的路径

  • 还有一点就是容易被报错的后半段影响:

    Please check that inclusion/exclusion patterns produce disjoint sets for main and test files

    请检查main和test文件,并不是有test文件的原因,sonar也可以扫单元测试类,一定一定要看前半段,sonarCube重复扫描文件的路径!

更多推荐

Sonar:File */Application.java can‘t be indexed twice. Please check that inclusio

本文发布于:2024-03-23 20:15:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1742362.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Application   java   Sonar   File   indexed

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!