java - SonarQube语言插件开发

标签 java sonarqube

我开始开发自己的插件,但遇到了文件系统方面的问题:

我的传感器实现类似于 Sonar 引用插件:

public class PLPlusCodeSensor implements Sensor {
    private final Logger log = LoggerFactory.getLogger(this.getClass());
    private final FileSystem filesystem;
    private final Settings settings;

    public PLPlusCodeSensor(Settings settings, FileSystem filesystem) {
        this.filesystem = filesystem;
        this.settings = settings;
    }

    @Override
    public boolean shouldExecuteOnProject(Project project) {
        return true;
    }

    @Override
    public void analyse(Project project, SensorContext sensorContext) {
        for(InputFile file : filesystem.inputFiles(filesystem.predicates().all())) {
            log.info("Processing file " + file.absolutePath());
            Measure measure = new Measure(PLPlusMetrics.LineLength, 85d);
            sensorContext.saveMeasure(file, measure);
        }
    }

    @Override
    public String toString() {
        return this.getClass().getName();
    }
}

但源目录中没有关于任何文件的输出:

18:04:27.707 INFO  - Sensor com.sbt.tools.sonarqube.plplus.PLPlusCodeSensor
18:04:27.707 INFO  - Sensor com.sbt.tools.sonarqube.plplus.PLPlusCodeSensor (done) | time=0ms

这是我的 sonar-project.properties 文件:

sonar.projectKey=plplus-test
sonar.projectName=PLPlus Test Analysis
sonar.projectVersion=1.0
sonar.sources=c:/dev/plplus/src

这里是src目录的内容:

C:\dev\plplus\src>dir
 Том в устройстве C имеет метку Windows7_OS
 Серийный номер тома: 18DB-13C8

 Содержимое папки C:\dev\plplus\src

23.12.2015  17:59    <DIR>          .
23.12.2015  17:59    <DIR>          ..
23.12.2015  15:54                 0 test.plp
           1 файлов              0 байт
           2 папок  98 023 743 488 байт свободно

C:\dev\plplus\src>

请帮助我理解,为什么 filesystem.inputFiles(filesystem.predicates().all()) 返回一个空迭代器?

最佳答案

为了从文件系统 api 获取文件,它必须被索引。为此,您必须定义一种语言来声明您正在寻找的扩展,或者使用 sonar.import_unknown_files=true(使用 SQ 5.1+)导入所有源文件

关于java - SonarQube语言插件开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34438572/

相关文章:

java - 在数据库中插入记录时发送邮件

java - 测试 Spring MVC Controller 的 @MessageMapping WebSocket 方法

java - Sonar-runner.bat 在构建调用提供编译类时显示错误

mysql - Sonar 错误 - 无法执行 Sonar : Fail to extract sonar-runner-batch. jar:设备上没有剩余空间

java - 我无法配置个人适配器

java - 防止在页面加载时将后缀添加到资源中

Java Mail超时和连接超时处理

sonarqube - 如何使用 API 检查项目的质量门状态?

sonarqube - 从 xml 导入 sonarqube 质量配置文件

python - 适用于 python 的 Sonar 库 : Test success score not being discovered - The resource for 'tests.test_transformation_helper.TestCase' is not found