SonarQube中的Decorator插件

时间:2015-11-09 10:30:21

标签: plugins sonarqube decorator

我们已经实现了一个SonarQube插件,其扩展实现了Decorator并将其部署到扩展/插件。 不幸的是,当触发声纳分析时,不会调用扩展实现。还有什么需要配置的吗?

实现看起来很简单:

public class MyPlugin extends SonarPlugin {

    @Override
    public List getExtensions() {
        return Arrays.asList(MyExt.class);
    }
}

@DependsUpon(DecoratorBarriers.ISSUES_TRACKED)
public class MyExt implements Decorator, BatchComponent {

    @Override
    public void decorate(Resource resource, DecoratorContext decoratorContext) {

        Project project = decoratorContext.getProject();

        Measure measure = new Measure();
        measure.setData("abc");
        decoratorContext.saveMeasure(measure);

    }

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

1 个答案:

答案 0 :(得分:1)

如果您使用的是SQ 5.2,则Decorator不再有效。您必须转而使用MeasureComputer界面。

API真的不清楚这个,@Deprecated注释被滥用恕我直言(通常你首先弃用代码,让它继续工作,直到它不再工作,然后你只是删除它...你不要'弃用代码以告知人们它不再可用......)

我猜SonarSource的某人忘记了code deprecation的内容......

  

虽然软件中保留了已弃用的软件功能,但其使用可能会引发警告消息,建议采用其他做法;不推荐使用的状态也可能表示将来会删除该功能。不推荐使用功能而不是立即删除功能,以提供向后兼容性,并使程序员有时间使受影响的代码符合新标准。