上运行Sonarqube
我在詹金斯管道上使用maven设置Sonarqube遇到了一些麻烦。
我的管道将git reto拉到了为其创建的目录中,它成功地通过了其余步骤,但是我看不到Sonarqube上的测试结果,也没有进行测试的任何输出。
这是我在管道上设置的代码:
node('master'){
stage('Git Clone') {
dir('my-git-dir'){
git branch: '$GIT_BRANCH'
git url: '$GIT_REPO'
credentialsId: '11111111-111-1111-1111-111111111111'
}
}
stage('build & SonarQube Scan') {
MVN="/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.3.9/bin/mvn"
echo "running clean verify sonar"
"$MVN clean verify sonar:sonar -Dsonar.host.url=http://111.11.1.111:9000 -Dsonar.java.binaries=/etc/sonarqube"
echo "running clean install"
"$MVN clean install deploy -DskipTests"
}
}
该命令在免费样式项目上运行良好:
#!/usr/bin/bash
MVN="/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.3.9/bin/mvn"
$MVN clean verify sonar:sonar -Dsonar.host.url=http://111.11.1.111:9000 -Dsonar.java.binaries=/etc/sonarqube
$MVN clean install deploy -DskipTests
它还具有"调用顶级Maven目标"Maven版本:
Maven 3.3.9
目标:
test
-fn
编辑:工作脚本
stage('SonarQube analysis') {
dir("$gitRepo"){
withSonarQubeEnv('SonarQube') {
sh "pwd"
MVN="/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.3.9/bin/mvn"
echo "Running JaCoCO stuff"
sh "$MVN clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=false"
echo "running clean verify"
sh "$MVN clean verify sonar:sonar -Dsonar.host.url=http://111.11.1.111:9000" //-Dsonar.java.binaries=/etc/sonarqube"
echo "running clean install deploy"
sh "$MVN clean install deploy -DskipTests"
}
P.S我正在尝试创建一个可以从中摘下的回购和分支,创建/使用该工作空间中的文件以在
您的问题表明了几个误解。
首先,Sonarqube分析不会为您执行您的测试;您需要自己解雇。如文档中所述
$MVN clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=false
接着
$MVN sonar:sonar -sonar.host.url=http://111.11.1.111:9000
请注意,我已经删除了您使用的-Dsonar.java.binaries=/etc/sonarqube
参数。那是因为
- 这是您项目编译类的途径。他们不应在
/etc/sonarqube
中。(如果是的话,请移动它们。( - Maven Analysis已经知道您的二进制文件在哪里,因此您不需要提供路径