編寫sonar 插件:No SqaleSubCharacteristic annotation was found on class xxx

報錯信息:

org.jruby.rack.RackInitializationException: java.lang.IllegalArgumentException:
 No SqaleSubCharacteristic annotation was found on class 
com.lingtian.sonar.check.rulechecks.ConfigFileUserCheck
    at org.jruby.rack.RackInitializationException.wrap
(RackInitializationException.java:31)
    at org.jruby.rack.RackApplicationFactoryDecorator.init
(RackApplicationFactoryDecorator.java:98)
    at org.jruby.rack.RackServletContextListener.contextInitialized
(RackServletContextListener.java:50)
    at org.sonar.server.platform.web.RubyRailsContextListener.contextInitialized
(RubyRailsContextListener.java:38)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

在規則上面添加 @SqaleSubCharacteristic("ARCHITECTURE_CHANGEABILITY")

添加之後報錯:

2019.05.03 11:25:23 ERROR web[][o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.web.PlatformServletContextListener
java.lang.IllegalStateException: One of HTML description or 
Markdown description must be defined for rule [repository=configFiles, key=ConfigFiles-User-Check]
    at org.sonar.api.server.rule.RulesDefinition$NewRule.validate
(RulesDefinition.java:903)
    at org.sonar.api.server.rule.RulesDefinition$NewRule.access$800
(RulesDefinition.java:661)
    at org.sonar.api.server.rule.RulesDefinition$RepositoryImpl.<init>(RulesDefinition.java:568)
    at org.sonar.api.server.rule.RulesDefinition$RepositoryImpl.<init>(RulesDefinition.java:542)
    at org.sonar.api.server.rule.RulesDefinition$Context.registerRepository
(RulesDefinition.java:438)
    at org.sonar.api.server.rule.RulesDefinition$Context.access$500(
RulesDefinition.java:382)
    at org.sonar.api.server.rule.RulesDefinition$NewRepositoryImpl.done
(RulesDefinition.java:514)
    at com.lingtian.sonar.rules.ConfigFileScanRulesDefinition.define
(ConfigFileScanRulesDefinition.java:20)
    at org.sonar.server.rule.RuleDefinitionsLoader.load
(RuleDefinitionsLoader.java:52)
    at org.sonar.server.rule.RegisterRules.start(RegisterRules.java:99)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)

我發現了我的問題,需要在@Rule中添加字段'description'  例如 :

@Rule(
  key = "Rule1",
  name = "RuleExampleCheck",
  description = "This rule do nothing",
  priority = Priority.INFO,
  tags = {"try"}
  )

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章