0

嗨,我有一个用于 RPG 的自定义声纳插件,并且正在尝试运行一个声纳项目。这是我的插件类:

@Properties({
@Property(key = "rpg", defaultValue = "rpg", name = "File suffixes",
    description = "Comma-separated list of suffixes for files to analyze. To not filter, leave the list empty.")
})

public class RPGPlugin extends SonarPlugin {
 ...

在我要运行分析的项目中,我有以下 sonarproject.properties 文件:

#These are the required metadata for any sonar project
sonar.projectName= prj1
sonar.projectKey = prj1
sonar.projectVersion = 0.1
# The value of the property must be the key of the language.
sonar.language=rpg
#Path to source directory
sources = src

这种方法在 Sonar 3.2 之前一直有效,但此后失败了。现在通过声纳运行器完成的分析显示以下错误:

Exception in thread "main" org.sonar.batch.bootstrapper.BootstrapException: org.sonar.api.utils.SonarException: 
You must install a plugin that supports the language 'rpg'

此错误在 3.2 以上的所有版本上都是一致的。但是,如果我将属性文件中的语言值更改为 java,则项目会像以前一样分析

sonar.language=java

虽然这是有效的,但属性文件的编程值错误,甚至会运行明确指定语言名称的 post job 操作:

public boolean shouldExecuteOnProject(Project project) {
    return "rpg".equalsIgnoreCase(project.getLanguageKey());

为了让我的项目为我的 RPG 插件执行 RPG 项目,我还需要做任何其他事情吗?

4

1 回答 1

1

问题在于 RPG 语言没有定义的规则库(甚至是空的),因此 Sonar 认为该语言不受支持。

更一般地说,在添加对新语言的支持时,您最好的选择是查看我们为 Sonar 开发的一些开源语言插件。例如,你可以去看看Javascript 插件

于 2013-04-29T13:43:25.903 回答