例如sonarscanner执行扫描时传递的参数-Dsonar.projectKey
可以在插件中使用context.getProject().key()
获取到。
Is it possible to get some customized parameters in Custom rule?
可以利用Sensor
或ProjectSensor
传递自定义变量。前者在每一个module执行时都会被调用;后者针对每个project只调用一次
实现的接口void execute(SensorContext context);
中,从对象APIorg.sonar.api.scanner.sensor.SensorContext
中可获取Configuration
对象,顾名思义,包含了针对project级别所有的信息。例如,传递-Dsonar.mycontxt.name=abc
的自定义参数,可以通过sensorContext.config().get("sonar.mycontxt.name")
获取自定义的变量。
注意:
- Sensor的
execute
方法可以指定执行的时间点,默认在文件扫描之后执行,可以通过注解@Phase(name = Phase.Name.PRE)
让sensor在执行具体的代码扫描之前运行。 - 自定义的Sensor需要添加到plugin的配置中,例如
MySensor
可以使用context.addExtension(MySensor.class);
添加到插件定义中
网友评论