Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SonarQube中的一种文件类型上使用两个不同的插件_Java_Sonarqube_Sonar Runner_Sonarqube Scan - Fatal编程技术网

Java 如何在SonarQube中的一种文件类型上使用两个不同的插件

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

我想应用声纳文本插件声纳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 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规则。这听起来像是一种限制。