2016-10-07 1 views
0

Ich möchte die Regeln der StyleCop analyzer for Roslyn in SonarQube verwenden, Um dies zu tun und nach der Dokumentation gegründet, habe ich heruntergeladen SonarQube Roslyn SDK, und versuchen, das Plugin mit zu generieren für den Analysator mit dem folgenden Befehl:Styecop Anayzers Plugin für Sonarqube erlaubt nicht die Plattform zu starten

RoslynSonarQubePluginGenerator /a:StyleCop.Analyzers /sqale:StyleCop.Analyzers.1.0.0.sqale.xml 

Es hat eine LOG ohne Fehler erzeugt jedoch ein Dialog mir zu sagen, dass eine Datei nicht angezeigt befindet, zeigen dos nicht mehr. Am Ende dieser Meldung angezeigt werden:

Plugin generated: C:\Temp\SonarQube.Roslyn.SDK-1.0\stylecopanalyzers-plugin-1.0.0.jar 

Ich kopiere das Plugin in C: \ Sonar \ sonarqube_5_6 \ extensions \ Plugins und versuchen, die Sonarqube Instanz zu starten, aber es funktioniert nicht. das folgende Protokoll erscheint bei sonar.log Datei:

2016.10.07 15:35:18 ERROR web[o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener 
java.lang.IllegalStateException: Fail to instantiate class [org.sonar.plugins.roslynsdk.RoslynSdkGeneratedPlugin] of plugin [stylecopanalyzers] 
    at org.sonar.core.platform.PluginLoader.instantiatePluginClasses(PluginLoader.java:146) ~[sonar-core-5.6.1.jar:na] 
    at org.sonar.core.platform.PluginLoader.load(PluginLoader.java:73) ~[sonar-core-5.6.1.jar:na] 
    at org.sonar.server.plugins.ServerPluginRepository.loadInstances(ServerPluginRepository.java:288) ~[sonar-server-5.6.1.jar:na] 
    at org.sonar.server.plugins.ServerPluginRepository.start(ServerPluginRepository.java:117) ~[sonar-server-5.6.1.jar:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65] 
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65] 
    at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) ~[picocontainer-2.15.jar:na] 
    at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) ~[picocontainer-2.15.jar:na] 
    at org.sonar.core.platform.ComponentContainer$1.start(ComponentContainer.java:320) ~[sonar-core-5.6.1.jar:na] 
    at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) ~[picocontainer-2.15.jar:na] 
    at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) ~[picocontainer-2.15.jar:na] 
    at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) ~[picocontainer-2.15.jar:na] 
    at org.picocontainer.behaviors.Stored.start(Stored.java:110) ~[picocontainer-2.15.jar:na] 
    at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016) ~[picocontainer-2.15.jar:na] 
    at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009) ~[picocontainer-2.15.jar:na] 
    at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767) ~[picocontainer-2.15.jar:na] 
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:141) ~[sonar-core-5.6.1.jar:na] 
    at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:84) ~[sonar-server-5.6.1.jar:na] 
    at org.sonar.server.platform.Platform.start(Platform.java:216) ~[sonar-server-5.6.1.jar:na] 
    at org.sonar.server.platform.Platform.startLevel2Container(Platform.java:182) ~[sonar-server-5.6.1.jar:na] 
    at org.sonar.server.platform.Platform.init(Platform.java:91) ~[sonar-server-5.6.1.jar:na] 
    at org.sonar.server.platform.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:43) ~[sonar-server-5.6.1.jar:na] 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_65] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_65] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_65] 
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65] 
Caused by: java.lang.ClassNotFoundException: org.sonar.plugins.roslynsdk.RoslynSdkGeneratedPlugin 
    at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39) ~[sonar-classloader-1.0.jar:na] 
    at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87) ~[sonar-classloader-1.0.jar:na] 
    at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76) ~[sonar-classloader-1.0.jar:na] 
    at org.sonar.core.platform.PluginLoader.instantiatePluginClasses(PluginLoader.java:141) ~[sonar-core-5.6.1.jar:na] 
    ... 32 common frames omitted 

Wenn ich die JAR-Datei zu öffnen, ist es nur noch einen Ordner META-INF

META-INF 
    |_lib 
     |_sslr-squid-bridge-2.6.jar 

ich schon sonarqube-roslyn-sdk-template-plugin und im selben Ordner abgelegt heruntergeladen als das SDK, aber das Verhalten bleibt.

Fehle ich einen Schritt? Brauche ich noch etwas?

Antwort

0

Ich lade den Code herunter. im Projekt SonarQube.Plugins.Roslyn.PluginGenerator.csproj in der Klasse ArchiveUpdater, speziell in der Methode ZipUsingShell es war ein Fehler, die das Hinzufügen von Dateien, ein Dialogfeld zeigt.

Als Workaround nehme ich den temporären Ordner und erstellen Sie die .jar-Datei manuell. Ich würde gerne tiefer gehen, warum es nicht möglich ist, die Dateien hinzuzufügen, aber momentan bin ich in Eile.

Ich vermute, dass das Problem mit der Instanz von 7zip, die ich installiert habe, verwandt sein kann.

0

zu lang für einen Kommentar

ich Ihr Problem nicht reproduzieren kann, könnten Sie einen Build-Skript teilen, die es wiedergibt?

Ich habe versucht, die folgenden:

git clone https://github.com/SonarSource-VisualStudio/sonarqube-roslyn-sdk.git 
cd sonarqube-roslyn-sdk 
nuget restore PluginGenerator.sln 
msbuild PluginGenerator.sln 
"RoslynPluginGenerator\bin\Debug\RoslynSonarQubePluginGenerator.exe" /a:stylecop.analyzers 

Dies erzeugte eine stylecopanalyzers-plugin-1.0.0.jar, die meta-inf 3 Ordner enthält, org, static. Der Ordner static enthält das neu verpackte nuget-Paket in einer Zip-Datei, und der Ordner org\sonar\plugins\roslynsdk\ enthält einige Dateien .xml und .class.

Verwandte Themen