Java 如何在SonarQube中的一种文件类型上使用两个不同的插件
我想应用声纳文本插件和声纳jproperties插件通过正则表达式扫描properties/txt/sh/xml文件,但收到了这样的错误Java 如何在SonarQube中的一种文件类型上使用两个不同的插件,java,sonarqube,sonar-runner,sonarqube-scan,Java,Sonarqube,Sonar Runner,Sonarqube Scan,我想应用声纳文本插件和声纳jproperties插件通过正则表达式扫描properties/txt/sh/xml文件,但收到了这样的错误 [ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.1.1:sonar (default-cli) on project test: Language of file 'src/main/java/test.properties' can not b
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.1.1:sonar (default-cli) on project test: Language of file 'src/main/java/test.properties' can not be decided as the file matches patterns of both sonar.lang.patterns.jproperties : **/*.properties and sonar.lang.patterns.text : **/*.properties,**/*.txt -> [Help 1]
如何避免这个问题并修复声纳的限制?你被卡住了
要使插件检查文件类型,通常需要将其配置为“声明”该文件扩展名(管理>常规设置>[language]>常规>文件后缀)。但是每个文件扩展名只能由一个插件声明。大概在您尝试实现这一点时,您已经将两个插件配置为声明.xml
文件扩展名。因此,您看到了错误
如果您缺少一些定制开发,您将无法实现此功能
关于定制开发,值得注意的是,Java插件确实检查了一些.xml
文件,但没有声明该文件扩展名。因此,如果你走这条路,你可能想看看Java插件是如何做到这一点的
但是,由于具有无人认领扩展名的文件在默认情况下不会编制索引(因此不可检查),这些Java插件规则仅在以下情况下起作用:
- 安装XML插件是为了声明
文件扩展名,并将这些文件扩展名编入索引,因此可供规则使用.XML
- 管理>常规>分析范围>文件>导入未知文件设置为
。(默认为true
)false
扫描仪工作方式的改变意味着,如果分析器提出问题,即使是扩展名无人认领的文件现在也会被编入索引。因此,例如,在SonarJava能够在pom.xml文件上引发问题之前,您不再需要安装SonarXML 这一限制阻止了我们的团队使用“coverity-sonar-plugin-1.6.2.jar”与coverity集成,因为它想要声明C/C++扩展,而我们仍然需要SonarQube的C/C++处理器来完成它的工作。导入Coverity问题只是为了添加到COPU数据中,而不是替换我们通过SonarQube.@simon.watts收集的数据。如果您已经在分析C/C++了,那么Coverity插件不需要声明扩展。而且从来没有“替换”的问题。只要将Coverity插件配置为不声明扩展名即可。Sonar应支持两个插件声明相同的“文件扩展名”:一个插件实现了X规则,另一个插件添加Y规则。这听起来像是一种限制。