当前位置: 首页 > 知识库问答 >
问题:

使用docker容器Sonnar扫描器时用Jenkins管道中的SonarQube分析代码

百里沛
2023-03-14

我希望对git存储库代码执行SonarQube分析,并且希望使用Docker容器中的SonarScanner,而不是Jenkins配置中的SonarScanner。

pipeline {
    agent { docker { image 'emeraldsquad/sonar-scanner:latest' } }
    stages {
        stage('build && SonarQube analysis') {
            steps {
                withSonarQubeEnv('sonar.tools.devops.****') {
                    sh 'sonar-scanner \\ -Dsonar.projectKey=myProject \\ -Dsonar.sources=./src \\'
                }
            }
        }
        stage("Quality Gate") {
            steps {
                timeout(time: 1, unit: 'HOURS') {
                    // Parameter indicates whether to set pipeline to UNSTABLE if Quality Gate fails
                    // true = set pipeline to UNSTABLE, false = don't
                    // Requires SonarScanner for Jenkins 2.7+
                    waitForQualityGate abortPipeline: true
                }
            }
        }
    }
}
Injecting SonarQube environment variables using the configuration: sonar.tools.devops.*****
[Pipeline] {
[Pipeline] sh
+ sonar-scanner ' -Dsonar.projectKey=myProject' ' -Dsonar.sources=./src' '\'
ERROR: Unrecognized option:  -Dsonar.sources=./src
INFO: 
INFO: usage: sonar-scanner [options]
INFO: 
INFO: Options:
INFO:  -D,--define <arg>     Define property
INFO:  -h,--help             Display help information
INFO:  -v,--version          Display version information
INFO:  -X,--debug            Produce execution debug output

共有1个答案

尉迟子民
2023-03-14

我将尝试删除参数之间的双反斜杠:sh'sonar-scanner-dsonar.projectkey=myproject-dsonar.sources=./src'

反斜杠转义空格,这些空格不会被shell使用,而是被添加到参数的名称中。

 类似资料:
  • 我试图通过Jenkins管道构建我的TypeScript应用程序。为了管理构建、测试和代码质量扫描,我让Jenkins使用一个基于Node:7-Alpine的Docker代理。 容器的Dockerfile是: 我的Jenkins文件看起来像: null [03:00:14]开始SonarQube分析... [03:00:14]检查可执行文件是否存在:/home/node/.sonar/native

  • 问题内容: 我有一个Jenkins作为docker容器运行,现在我想使用管道构建Docker映像,但是Jenkins容器总是告诉未找到Docker。 这是我运行詹金斯图像的方式: Jenkins映像的DockerFile是:https : //github.com/jenkinsci/docker/blob/9f29488b77c2005bbbc5c936d47e697689f8ef6e/Dock

  • 我正在尝试从我的jenkins节点运行soanrQube扫描,Sonar scanner版本是SonarQube scanner 3.1.0.1141,SonarQube服务器是SonarQube服务器5.6.4。得到以下错误,有谁能在这方面帮助我。

  • 因此,在调用一个我将在下面发布的函数(在main中)后,在同一个main中创建一个新的扫描器对象不起作用,并给了我以下错误: 它就放在我调用函数之后(在上面的代码中,我会关闭扫描器)。当我注释掉调用函数时,这个扫描器工作了,所以函数中的一些东西导致了扫描器中的错误。我花了几个小时寻找,但无法解决它,如果有人可以,我会非常感激。函数: (当我测试它时,我总是输入2)我尝试删除do-while循环,但

  • 我一直在使用Jenkins,我看到了很多管道示例(声明性示例),我还看到一些使用Jenkins文件中的pollSCM属性来触发构建,如下所示: 然而,我在配置多分支管道时看到了这个扫描多分支管道触发器选项。我不知道这两者有什么区别。 我遇到了所有这些问题,因为我面临着为同一作业触发两个构建的情况,我认为这是因为我配置了这两个选项。 谁能帮我理解一下这个区别? 非常感谢。

  • 问题内容: SonarQube扫描仪是否可以在Jenkinsfile中运行脚本,是否支持不具有maven和docker的BlueOcean管道插件? 我是Jenkins和BlueOcean的新手,并尝试了所有可用的基本方面。 如果SonarQube插件确实支持声明式: 问题答案: 解决了这一问题,只需要检查常规工具配置中的工具位置,并在jenkins文件中提供路径并调用它即可。 在此处输入图片说明