2016-11-16 58 views
1

我正在爲內部語言添加新的聲納規則。規則註冊是好的,但是然後我從sonar-plugin-api-4.4得到'無法啓動服務器'錯誤。規則[知識庫= xxx鍵= yyy]的聲納名稱爲空

該規則的所有資源(名稱,描述,級別,重要性,類別)都已填充。

附加一段日誌。

java.lang.IllegalStateException: Name of rule [repository=datastage, key=SEQ003] is empty 
at org.sonar.api.server.rule.RulesDefinition$NewRule.validate(RulesDefinition.java:682) ~[sonar-plugin-api-4.4.jar:na] 
at org.sonar.api.server.rule.RulesDefinition$NewRule.access$900(RulesDefinition.java:516) ~[sonar-plugin-api-4.4.jar:na] 
at org.sonar.api.server.rule.RulesDefinition$RepositoryImpl.<init>(RulesDefinition.java:454) ~[sonar-plugin-api-4.4.jar:na] 
at org.sonar.api.server.rule.RulesDefinition$RepositoryImpl.<init>(RulesDefinition.java:444) ~[sonar-plugin-api-4.4.jar:na] 
at org.sonar.api.server.rule.RulesDefinition$Context.registerRepository(RulesDefinition.java:338) ~[sonar-plugin-api-4.4.jar:na] 
at org.sonar.api.server.rule.RulesDefinition$Context.access$500(RulesDefinition.java:304) ~[sonar-plugin-api-4.4.jar:na] 
at org.sonar.api.server.rule.RulesDefinition$NewRepositoryImpl.done(RulesDefinition.java:423) ~[sonar-plugin-api-4.4.jar:na] 
at org.sonar.server.rule.DeprecatedRulesDefinition.define(DeprecatedRulesDefinition.java:106) ~[DeprecatedRulesDefinition.class:na] 
at org.sonar.server.rule.RuleDefinitionsLoader.load(RuleDefinitionsLoader.java:45) ~[RuleDefinitionsLoader.class:na] 
at org.sonar.server.rule.RegisterRules.start(RegisterRules.java:99) ~[RegisterRules.class:na] 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101] 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101] 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] 
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] 
at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) ~[picocontainer-2.14.3.jar:na] 
at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) ~[picocontainer-2.14.3.jar:na] 
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) ~[picocontainer-2.14.3.jar:na] 
at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) ~[picocontainer-2.14.3.jar:na] 
at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) ~[picocontainer-2.14.3.jar:na] 
at org.picocontainer.behaviors.Stored.start(Stored.java:110) ~[picocontainer-2.14.3.jar:na] 
at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1015) ~[picocontainer-2.14.3.jar:na] 
at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1008) ~[picocontainer-2.14.3.jar:na] 
at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:766) ~[picocontainer-2.14.3.jar:na] 
at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:91) ~[sonar-plugin-api-4.4.jar:na] 
at org.sonar.server.platform.ServerComponents$1.doPrivileged(ServerComponents.java:691) ~[ServerComponents$1.class:na] 
at org.sonar.server.user.DoPrivileged.execute(DoPrivileged.java:43) ~[DoPrivileged.class:na] 
at org.sonar.server.platform.ServerComponents.executeStartupTasks(ServerComponents.java:687) ~[ServerComponents.class:na] 
at org.sonar.server.platform.Platform.executeStartupTasks(Platform.java:126) ~[Platform.class:na] 
at org.sonar.server.platform.Platform.startLevel34Containers(Platform.java:122) ~[Platform.class:na] 
at org.sonar.server.platform.Platform.doStart(Platform.java:81) ~[Platform.class:na] 
at org.sonar.server.platform.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:54) ~[PlatformServletContextListener.class:na] 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) [tomcat-embed-core-7.0.42.jar:7.0.42] 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) [tomcat-embed-core-7.0.42.jar:7.0.42] 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.42.jar:7.0.42] 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) [tomcat-embed-core-7.0.42.jar:7.0.42] 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) [tomcat-embed-core-7.0.42.jar:7.0.42] 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_101] 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101] 
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101] 

回答

1

我有一個類似的錯誤,當我試圖使用添加到PMD插件我的自定義規則來運行一個詹金斯作業聲納分析。

11:20:28 INFO: PMD configuration: /u01/home/app/jenkins/jobs/CMTasks/jobs/SodimacSonarMaster/workspace/.sonar/pmd.xml 
11:20:28 net.sourceforge.pmd.RuleSetNotFoundException: Can't find resource 'pmdAtgRuleset.xml' for rule 'ServiceLocalParameterInLogging'. Make sure the resource is a  valid file or URL and is on the CLASSPATH. Here's the current classpath: /u01/home/app/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonarScanner/lib/ sonar-scanner-cli-2.8.jar 
11:20:28 at net.sourceforge.pmd.RuleSetReferenceId.getInputStream(RuleSetReferenceId.java:315) 
11:20:28 at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:164) 
11:20:28 at net.sourceforge.pmd.RuleSetFactory.createRule(RuleSetFactory.java:182) 
11:20:28 at net.sourceforge.pmd.RuleSetFactory.parseRuleReferenceNode(RuleSetFactory.java:468) 
11:20:28 at net.sourceforge.pmd.RuleSetFactory.parseRuleNode(RuleSetFactory.java:266) 
11:20:28 at net.sourceforge.pmd.RuleSetFactory.parseRuleSetNode(RuleSetFactory.java:219) 
... 

爲了解決這個問題我複製了pmdCustomRuleset.jar到PMD-聲納plugin.jar庫路徑,META-INF/lib目錄/,並重新啓動聲納。