gpt4 book ai didi

java - 自己的 Sonar 插件 - 如何设置语言?

转载 作者:行者123 更新时间:2023-11-30 09:23:24 25 4
gpt4 key购买 nike

我对 Sonar 比较陌生 - 特别是在编写自己的 Sonar 插件方面。经过一些成功的尝试,我现在卡住了。我编写了一个简单的插件,它只应将源文件(*.abap - 文件)传输到 Sonar 服务器。

在我的插件中我有一个 AbapLangauge(从 AbstractLangauge 扩展而来)

package sonarplugin;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.resources.AbstractLanguage;

public class AbapLanguage extends AbstractLanguage {
public static final String DEFAULT_SOURCE_SUFFIXES = "abap";
public static final String KEY = "sap";

private String[] fileSuffixes;
private static final Logger LOG = LoggerFactory.getLogger(AbapLanguage.class);

public AbapLanguage() {
super(KEY, "sap");
LOG.info("SETTING LANGUAGE TO SAP: " + KEY);
fileSuffixes = createStringArray(null, DEFAULT_SOURCE_SUFFIXES);
}

public String[] getFileSuffixes() {
return fileSuffixes;
}

private String[] createStringArray(String[] values, String defaultValues) {
if (values == null || values.length == 0) {
return StringUtils.split(defaultValues, ",");
}
return values;
}

}

我还有一个 SourceImporter

package sonarplugin;

import org.sonar.api.batch.AbstractSourceImporter;

public final class AbapSourceImporter extends AbstractSourceImporter {

public AbapSourceImporter(AbapLanguage language) {
super(language);
}
}

我将这两个类注册为扩展点。在我想用我在 sonar-project.properties 中设置的 sonar-runner 分析的测试项目中

sonar.language=sap

但是当我启动 sonar runner 时,出现以下错误:

15:11:36.148 INFO  - -------------  Executing Project Scan
15:11:36.386 INFO - ABAPIMPORTGERPLUGIN has just started.
15:11:36.924 INFO - Install JDBC driver
15:11:36.929 INFO - Apply project exclusions
15:11:36.937 WARN - H2 database should be used for evaluation purpose only
15:11:36.937 INFO - Create JDBC datasource for jdbc:h2:tcp://localhost:9092/sonar
15:11:37.051 INFO - Initializing Hibernate
15:11:42.669 INFO - ------------- Inspecting MeinTestprojekt
15:11:42.683 INFO - Load module settings
15:11:43.062 INFO - ABAPIMPORTGERPLUGIN has just started.
15:11:43.244 INFO - SETTING LANGUAGE TO SAP: sap
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 15.544s
INFO: Final Memory: 10M/158M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: You must install a plugin that supports the language 'sap'

有人可以帮助我吗?为什么 sonar-runner 说没有支持语言“sap”的插件?我的插件配置不对吗?

先谢谢了伯恩哈德

最佳答案

在您的具体情况下,问题出在您没有为您的新语言定义任何规则库(甚至是一个空的规则库),因此 Sonar 认为您的新语言不受支持。

更一般地说,您最好的选择是查看我们为 Sonar 开发的一些开源语言插件。例如,你可以去看看 Javascript plugin .

关于java - 自己的 Sonar 插件 - 如何设置语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com