在SonarQube和Jenkins中使用Gradle分析Java代码
本文介绍在SonarQube和Jenkins中使用Gradle分析Java代码的方法,前提条件是已在Linux系统中安装并运行SonarQube、及已安装并正在运行Jenkins服务、gradlew在代码的根目录中可用、SonarQube插件安装在Jenkins。
在SonarQube和Jenkins中使用Gradle分析Java代码的详细步骤
步骤1:在build.gradle文件中添加sonarqube插件
在源代码的根目录中打开“build.gradle”文件,并添加sonarqube插件行,如下所示:
plugins {
id "org.sonarqube" version "2.7"
}
步骤2:在Jenkinsfile中添加Gradle stage的分析
在这一步中,我们将在Jenkins文件中添加一个stage,通知Jenkins我们应该使用SonarQube工具中的Gradle来分析代码。在Jenkinsfile中添加以下stage:
stage ('Scan using Gradle') {
steps {
withSonarQubeEnv(installationName: 'SonarQubeScanner', credentialsId: 'SonarQubeSecret') {
sh "./gradlew sonarqube \
-Dsonar.projectKey=${serviceName} \
-Dsonar.host.url=${env.SONAR_HOST_URL} \
-Dsonar.login=${env.SONAR_AUTH_TOKEN} \
-Dsonar.projectName=${serviceName} \
-Dsonar.projectVersion=${BUILD_NUMBER}"
}
}
}
正如您所看到的,gradle将使用“sonarqube”任务运行,该任务由我们在步骤1中添加到“build.gradle”文件中的插件提供。我们还使用了“withSonarQubeEnv”包装器以及环境变量,如“${serviceName}”,您可以在Jenkinsfile环境部分/块中声明这些变量。
步骤3:建立管道
在这一步中,我们将构建或触发Jenkins来构建管道,我们希望它能从服务器上执行Gradle的Scanner。一旦Jenkins成功执行了所有stage,结果应该如下面的屏幕截图所示。您应该看到SonarQube图标,在那里您可以点击并在Jenkins中获得您的结果:
点击链接将重定向到SonarQube,您可以在那里查看您的结果,如下图所示:
步骤4:在Jenkinsfile中添加其他stage
扫描后,我们认为是时候构建应用程序并将其打包为jar文件或您喜欢的任何其他格式了。一个类似于下面的stage就足够了。但您会注意到,这里使用了安装在“/usr/local/gradle/”下的gradle应用程序,并使用了该命令周围的“withGradle”包装器。我们将很快在Jenkins中介绍gradle和gradle插件的安装,这样会更清楚。应该在“/build/libs/”目录中找到您的jar文件:
stage('Build App'){
steps {
withEnv(["PATH=/usr/local/gradle/bin"]) {
withGradle {
sh "gradle fatJar --no-daemon"
}
}
}
}
至此,您的Java应用程序最终能够使用fatJar gradle任务进行分析和构建。