sonarqube typescript-plugin: "Du måste installera ett plugin som stöder språket"
Jag försöker ställa in SonarQube för att analysera mitt TypeScript-projekt med den här pluginen: https://github.com/Pablissimo/SonarTsPlugin
Jag stöter dock på ett fel som:
> C:\sonarqube\sonar-runner-2.4\bin\sonar-runner.bat
...
INFO:
------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 3.006s
Final Memory: 18M/613M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: You must install a plugin that supports the language 'typescript'
ERROR:
ERROR: To see the full stack trace of the errors, re-run SonarQube Runner with the -e switch.
ERROR: Re-run SonarQube Runner using the -X switch to enable full debug logging.
Min setup: - Windows 7 64-bitars - JDK8 (1.8.0) 64-bitars - SonarQube 5.1 64-bitars
Jag har byggt pluginet från källkoden och kopierat den resulterande .jar-filen till min SonarQube-installation på C:\sonarqube\sonarqube-5.1\extensions\plugins\sonar-typescript-plugin-0.1-SNAPSHOT.jar.
SonarQube körs och är tillgängligt på port 9000, och jag kan se under Inställningar->System->Uppdateringscenter att TypeScript-pluginet är installerat, med språknöckel typescript.
Baserat på detta inlägg verkar det som att jag måste:
Logga in på din Sonar-instans, klicka på "Inställningar" > "Kvalitetsprofiler" och "Skapa" högst upp under rubriken för det språk du vill använda.
När jag tittar på de inställningarna ser jag en Typescript Profiles-rubrik, med en TsLint-profil definierad och inställd som standard.
Slutligen, i min projektrotkatalog har jag en fil sonar-project.properties
Required metadata
sonar.projectKey=my-ts-project
sonar.projectName=A TypeScript Project
sonar.projectVersion=1.0
Comma-separated paths to directories with sources (required)
sonar.sources=src
Language
sonar.language=typescript
Encoding of the source files
sonar.sourceEncoding=UTF-8
Med all denna konfiguration på plats får jag fortfarande sonar-runner-felet "Du måste installera ett plugin som stöder språket".
Vad missar jag?
redigera :
Jag försökte installera JavaScript-pluginet, och jag ser samma problem. Så detta är inte begränsat till TypeScript. Jag kan köra Sonar mot Java-projekt, men inga andra språk verkar fungera.
Svar #1
Okej, jag har listat ut hur man löser detta specifika problem. Nyckeln sonar.language i min sonar-project.properties bör ställas in på ts, inte typescript.
Language
sonar.language=ts
Jag klurade ut detta genom att titta på ett exempelprojekt som motsvarar JavaScript-pluginet: https://github.com/SonarSource/sonar-examples/blob/master/projects/languages/javascript/javascript-sonar-runner/sonar-project.properties. Här är språket satt till js och inte javascript.
Jag måste gissa att språknamnet generellt bör ställas in på den normala filändelsen för källfiler? Dvs. Java -> .java, JavaScript -> .js, TypeScript -> .ts ... Om så är fallet, ja, det är inte självklart. Finns det något sätt att bekräfta denna gissning?
Svar #2
Här är de möjliga sonar.language-värdena
C# => "cs"
CSS => "css"
SCSS => "scss"
Less => "less"
Java => "java"
Web => "web"
XML => "xml"
JSON => "json"
JavaScript => "js"
Installera den nödvändiga pluginen och kör Skannern med -X-växeln, du kan hitta de nödvändiga värdena i sonar-loggarna.
