我使用Jenkins作为我的CI / CD服务器,我为我的JAVA项目创建了一个Jenkins文件,并且我正在使用maven声纳插件扫描和质量。 mvn sonar:sonar
命令在target / sonar / report-task.txt生成文件。该文件包含与扫描过程相关的信息,并使用该信息,我可以使用生成的taskId调用SonarQube REST API,然后我可以使用analysisId调用REST API,并根据质量条件确定管道是否损坏。
我正在尝试为Javascript项目做类似的事情,但这一次并从命令行使用声纳扫描程序但我意识到没有生成文件作为report-task.txt(我相信这个文件只是由maven sonar-plugin)。所以我想知道是否有办法生成这种信息。
我真的需要taskId值,以便在扫描程序启动后动态调用SonarQube REST API。
答案 0 :(得分:0)
由于您使用的是Jenkins文件,因此无需手动执行此操作。来自the docs
node {
stage('SCM') {
git 'https://github.com/foo/bar.git'
}
stage('SonarQube analysis') {
withSonarQubeEnv('My SonarQube Server') {
sh 'mvn clean package sonar:sonar'
} // SonarQube taskId is automatically attached to the pipeline context
}
}
// No need to occupy a node
stage("Quality Gate"){
timeout(time: 1, unit: 'HOURS') { // Just in case something goes wrong, pipeline will be killed after a timeout
def qg = waitForQualityGate() // Reuse taskId previously collected by withSonarQubeEnv
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
如果你没有使用Maven进行构建和分析,那么只需在适当的情况下使用正确的命令。
答案 1 :(得分:0)
文件包含与扫描过程有关的信息是: .scannerwork / report-task.txt