Sonarqube 使用Sonar Runner注入外部参数
我找了很长时间,还没有找到答案。 下面的问题是:我想把外部信息传递给我的sonar runner,比如一个配置文件 我的第一个问题是,是否有可能做到这一点 例如,我想要构建一个项目,并且我想要传入数据库凭据的外部参数:Sonarqube 使用Sonar Runner注入外部参数,sonarqube,sonar-runner,Sonarqube,Sonar Runner,我找了很长时间,还没有找到答案。 下面的问题是:我想把外部信息传递给我的sonar runner,比如一个配置文件 我的第一个问题是,是否有可能做到这一点 例如,我想要构建一个项目,并且我想要传入数据库凭据的外部参数: # Required metadata sonar.projectKey=javascript_spine sonar.projectName=Simple Spine js sonar.projectVersion=1.1 # For example database par
# 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();
}
}
}
如中所述,插件可以通过Java组件org.sonar.api.config.Settings获取属性值
请注意,不应从org.sonar.api.SonarPlugin实例(生命周期原因,设置稍后初始化)使用设置,而应从扩展(由SonarPlugin#getExtensions()返回)谢谢Simon,但我仍然有一个问题。我创建了包含属性值的plugin.jar,但当我使用sonar runner运行java项目时,我得到了这个堆栈错误:“错误:由以下原因引起:org.sonar.api.resources.project.getProperty(Ljava/lang/String;)Ljava/lang/Object;”