Comment faire pour configurer un Jenkins Pipeline pour SonarQube scan
Je suis en train de configurer un jenkins pipeline pour mon projet, mais il y a quelque chose qui manque ici, si quelqu'un pouvait directe sur ce que je fais de mal:
Ci-dessous est le pipeline de script:
node {
stage('SonarQube analysis') {
//requires SonarQube Scanner 2.8+
def scannerHome = tool 'sonarScanner';
withSonarQubeEnv('SonarQube 6.2') {
bat "${scannerHome}/bin/sonar-runner.bat"
}
}
}
Ci-dessous est le Jenkins, Sonar Plugin configurations liées:
En vertu de Manage Jenkins > Configure System
:
Sous Manage Jenkins > Global Tool Configuration
Ci-dessous est l'erreur que j'obtiens:
D:\jenkins\workspace\Test_Pipeline>D:\sonar-runner-2.4/bin/sonar-runner.bat
D:\sonar-runner-2.4
SonarQube Runner 2.4
Java 1.8.0_92 Oracle Corporation (64-bit)
Windows Server 2008 R2 6.1 amd64
INFO: Runner configuration file: D:\sonar-runner-2.4\conf\sonar-runner.properties
INFO: Project configuration file: NONE
INFO: Default locale: "en_US", source code encoding: "UTF-8"
INFO: Work directory: D:\jenkins\workspace\Test_Pipeline\.\.sonar
INFO: SonarQube Server 6.2
19:48:53.627 INFO - Load global repositories
19:48:53.920 INFO - Load global repositories (done) | time=298ms
19:48:53.951 WARN - Property 'sonar.jdbc.url' is not supported any more. It will be ignored. There is no longer any DB connection to the SQ database.
19:48:53.951 WARN - Property 'sonar.jdbc.username' is not supported any more. It will be ignored. There is no longer any DB connection to the SQ database.
19:48:53.951 WARN - Property 'sonar.jdbc.password' is not supported any more. It will be ignored. There is no longer any DB connection to the SQ database.
19:48:53.951 INFO - User cache: C:\Users\Administrator\.sonar\cache
19:48:54.378 INFO - Load plugins index
19:48:54.378 INFO - Load plugins index (done) | time=0ms
19:48:55.235 INFO - Process project properties
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 3.404s
Final Memory: 5M/120M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: You must define the following mandatory properties for 'Unknown': sonar.projectKey, sonar.sources
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.
[Pipeline] }
[Pipeline] //wrap
[Pipeline] }
[Pipeline] //stage
[Pipeline] }
[Pipeline] //node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE
Le problème semble que Jenkins ne sais pas où mon sonar-project.propriétés est placé. C'est en vertu de D:\myprj et le contenu est comme ci-dessous:
# required metadata
sonar.projectKey=my_prj:my_prj
sonar.projectName=my_prj
sonar.projectVersion=1.00
sonar.sources=my_prj/src
sonar.language=java
Pls suggérer comment je peux faire Jenkins pipeline conscient de l'endroit où le sonar-project.fichier de propriétés est placée
Vous devez vous connecter pour publier un commentaire.
J'ai besoin d'ajouter de l'espace de travail de mon script. Voici le script ci-dessous:
Je vois que vous étiez à l'aide de Sonar-runner 2.4. Je pense en exécutant le version 2,8 vous aurez de meilleurs résultats. C'est mon JenkinsFile de configuration, en utilisant Déclarative Pipeline de la syntaxe. J'ai eu le même problème, mais j'ai résolu en renommant mon sonar-project.les propriétés de fichier, le nom précédent était "sonar."propriétés et de la recherche(La Sonarqube officiel docs ne m'a pas aidé). J'espère que cela peut aider les autres.