我已经搜索了很长时间但我还没有找到答案。 以下问题是:我想将外部信息传递给我的声纳运行器,例如配置文件。
我的第一个问题是要知道是否可以这样做?
例如,我想构建一个项目,我想传递外部参数数据库凭证:
# Required metadata
sonar.projectKey=javascript_spine
sonar.projectName=Simple Spine js
sonar.projectVersion=1.1
# For example database parameters
sonar.dbUserName = "..."
sonar.dbPassword = "xxxx"
sonar.hostName = "ip"
我如何在插件中获取参数:
@Properties(@Property(key = "my.property", name = "My property", defaultValue = "20"))
public class MyJavaRulesPlugin extends SonarPlugin {
private PrintWriter ecri;
public MyJavaRulesPlugin(Settings settings) {
if(settings != null) {
String value = settings.getString("my.property"); // default value is 20
System.out.println("La valeur de value est :" + value);
// Ecrire dans un fichier texte sur le Desktop
try {
ecri = new PrintWriter(new FileWriter("/home/michael/test.txt"));
ecri.print("La valeur de value est :" + value);
ecri.flush();
ecri.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
如http://docs.sonarqube.org/display/DEV/Coding+a+Plugin#CodingaPlugin-HowtoGetConfiguration中所述,插件可以通过Java组件org.sonar.api.config.Settings获取属性值。
请注意,不应该从org.sonar.api.SonarPlugin实例使用设置(生命周期原因,设置稍后初始化),但是来自扩展(由SonarPlugin#getExtensions()返回)