1
我試圖訪問我的SonarQube插件延伸RulesDefinition
類Property
。 我定義了性能與擴展SonarPlugin
類:SonarQube獲取屬性RulesDefinition
@Properties(
@Property(key="sonar.root.path", name="Path to installation", description = "Root directory of the Master plugin installation directory")
)
正確創建的屬性,我把它在SQ的配置頁面值,但不知何故,我無法從使用此代碼擴展RulesDefinition
類訪問在重寫define(Context context)
方法:
// Get access to the Properties
Settings settings = new Settings(new PropertyDefinitions(new MyPlugin()));
if(settings.hasKey("sonar.root.path")) {
// Never enters here
String path = settings.getString("sonar.root.path");
} else {
// If always returns false and enters here
LOG.info("No property defined with the provided key.");
}
// To double-check
LOG.info("The value: " + settings.getString("sonar.root.path")); // Returns null
LOG.info("Has default value: " + settings.hasDefaultValue("sonar.root.path"));
// Returns false, or true if I provide a default value, proving it can
// access the property - so the if condition above should have returned true
奇怪的是,我已經通過REST Web服務檢查了物業,並確認所顯示的值是在網頁中設置的,但如果我提供了一個默認值(如上面所述),日誌顯示了錯誤lt值,而不是在網頁中輸入的值(並通過Web服務顯示)。
也許問題出在我得到Settings
對象的方式。希望提供任何幫助。 在此先感謝。
謝謝你的回答。我明天會試試,我會提供反饋意見。我沒有這個類的構造函數,因爲我不需要。如果我按照您的建議創建它,SonarQube的引擎會自動使用實例化的信息訪問它,是這樣嗎?另外,我應該在擴展'SonarPlugin'的類中保留'Property'definition嗎?謝謝。 – jonypera
是和是(但[PropertyDefinition](http://javadocs.sonarsource.org/5.6/apidocs/index.html?org/sonar/api/config/PropertyDefinition.html)是首選) –
謝謝你的朋友,工作得很漂亮不錯。 – jonypera