我们已经实现了一个SonarQube-plugin和一个实现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;
}
}发布于 2015-11-20 00:35:33
如果你使用的是SQ5.2,Decorator就不能工作了。您必须转而使用MeasureComputer界面。
API对此并不清楚,而且@Deprecated注释被滥用了(通常你首先弃用代码,让它继续工作,直到它不再工作,然后删除它……您不会为了通知人们代码不再可用而弃用代码……)
我猜是SonarSource的某个人忘记了code deprecation是关于什么的。
虽然已弃用的软件功能仍保留在软件中,但它的使用可能会引发建议替代做法的警告消息;已弃用状态也可能表示将来将删除该功能。这些功能将被弃用,而不是立即删除,以提供向后兼容性,并让程序员有时间使受影响的代码符合新标准。
https://stackoverflow.com/questions/33607150
复制相似问题