plugin sonarqube typescript: "Trebuie să instalați un plugin care să suporte limbajul"
Încerc să configurez SonarQube pentru a analiza proiectul meu TypeScript folosind acest plugin: https://github.com/Pablissimo/SonarTsPlugin
Totuși, întâmpin o eroare de genul:
> 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.
Configurarea mea: - Windows 7 pe 64 de biți - JDK8 (1.8.0) pe 64 de biți - SonarQube 5.1 pe 64 de biți
Am construit pluginul din sursă și am copiat fișierul .jar rezultat în instalația mea SonarQube la C:\sonarqube\sonarqube-5.1\extensions\plugins\sonar-typescript-plugin-0.1-SNAPSHOT.jar.
SonarQube rulează și servește pe portul 9000, și pot vedea la Setări->Sistem->Centrul de Actualizări că pluginul TypeScript este instalat, cu cuvântul cheie de limbaj typescript.
Pe baza acestei postări, se pare că trebuie să:
Conectați-vă la instanța Sonar, faceți clic pe „Setări” > „Profiluri de calitate” și pe „Creează” în partea de sus a titlului pentru limba pe care doriți să o utilizați.
Uitându-mă la acele setări, văd un titlu Profiluri Typescript, cu un profil TsLint definit și setat ca implicit.
În cele din urmă, în directorul rădăcină al proiectului meu, am un fișier 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
Cu toată această configurare pusă în aplicare, încă primesc eroarea sonar-runner „Trebuie să instalați un plugin care să suporte limbajul”.
Ce îmi lipsește?
editează :
Am încercat să instalez pluginul JavaScript și văd aceeași problemă. Deci, aceasta nu se limitează la TypeScript. Pot să rulez Sonar pe proiecte Java, dar se pare că niciun alt limbaj nu funcționează.
Răspuns #1
Ok, am reușit să găsesc cum să rezolv această problemă specifică. Cheia sonar.language din sonar-project.properties ar trebui să fie setată la ts, nu la typescript.
Language
sonar.language=ts
Am descoperit asta uitându-mă la proiectul exemplu corespunzător pluginului JavaScript: https://github.com/SonarSource/sonar-examples/blob/master/projects/languages/javascript/javascript-sonar-runner/sonar-project.properties. Aici, limba este setată la js, nu la javascript.
Trebuie să ghicesc că, în general, cheia limbajului ar trebui să fie setată la extensia normală a fișierelor sursă? Adică Java -> .java, JavaScript -> .js, TypeScript -> .ts ... Dacă da, ei bine, asta nu este evident. Există vreo modalitate de a confirma această presupunere?
Răspunsul #2
Iată valorile posibile pentru sonar.language
C# => "cs"
CSS => "css"
SCSS => "scss"
Less => "less"
Java => "java"
Web => "web"
XML => "xml"
JSON => "json"
JavaScript => "js"
Instalați pluginul necesar și rulați Scanner-ul folosind comutatorul -X, puteți găsi valorile necesare în jurnalele sonar.
