标签: sonar-runner

当获取'gradle sonarRunner'时,获取Jenkins的Sonar仪表板链接

使用Jenkins构建步骤Invoke Standalone Sonar Analysis(可通过Sonar插件获得),您可以在作业概述中获得SonarQube仪表板的这个很好的链接: 声纳链接.

由于存在问题,我没有使用此构建步骤,而是使用调用的构建步骤gradle sonarRunner: gradle sonarRunner

这是我build.gradle配置声纳的一部分:

sonarRunner {
    sonarProperties {
    property "sonar.projectKey", projectId
    property "sonar.projectName", projectName

    // Address of SonarQube server
    property "sonar.host.url", "http://localhost:9000"

    // Database config
    property "sonar.jdbc.url", "jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true"
    property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
    property "sonar.jdbc.username", "root"
    property "sonar.jdbc.password", "superSecret"
    }
}
Run Code Online (Sandbox Code Playgroud)

这很有效:就像Invoke Standalone Sonar Analysis构建步骤一样,我可以浏览SonarQube的结果http://localhost:9000/dashboard/index/jutilsId.

不幸的是,通过这种方式,SonarsQube仪表板的链接已经从Jenkins的工作概述中消失了.

这篇博客文章描述了如何实现我想要的但似乎已经过时,因为我在SonarQube的配置中找不到任何选项Check if this project is NOT built with maven 2.

有什么方法可以使用此链接并使用gradle sonarRunner吗?


我的系统: …

gradle jenkins sonar-runner sonarqube

7
推荐指数
1
解决办法
7209
查看次数

属性文件排除多个路径

我有一个sonar-project.properties文件,它指定了sonar-runner如何检查文件夹结构,要检查的文件,要忽略的文件等.

我无法成功确定如何成功排除多个路径.

这是sonar-project.properties文件:

sonar.projectKey=C3S-web
sonar.projectName=C3S-sonar-web
sonar.projectVersion=0.0.1

sonar.sources=.
sonar.tests=test
sonar.language=js
sonar.profile=Sonar way
sonar.exclusions=test/*, node_modules/*
sonar.dynamicAnalysis=reuseReports

sonar.javascript.jstest.reportsPath=coverage
sonar.javascript.lcov.reportPath=coverage/lcov-report
Run Code Online (Sandbox Code Playgroud)

我遇到麻烦的是:

sonar.exclusions
Run Code Online (Sandbox Code Playgroud)

列出多个路径不起作用,有或没有逗号,或者在引号中.

code-coverage properties node.js sonar-runner sonarqube

7
推荐指数
2
解决办法
5657
查看次数

是否可以通过预提交挂钩运行 SonarQube 分析

我已经阅读了关于 stackoverflow 的几篇文章,其中说声纳作为预提交分析工具的使用效率低下,因为它必须运行整个项目的编译,运行其分析等。

但是,sonarqube 的手册声明有一个sonar.inclusions属性用于设置要运行分析的文件列表。因此,我正在考虑对已更改/修改的文件作为预提交挂钩进行分析,并在添加太多问题时提交失败。

据我了解,可以通过svnlook获取修改和添加文件的列表;还可以将声纳分析器指向具体的.properties文件(例如,该文件指向仅具有编码规则和圈复杂度以及 LCOM4 指标的配置)。

但是,我无法理解如何在预提交钩子脚本中获取声纳分析的结果,并提供分析结果的链接。有可能吗?是否有任何真实世界的或至少与此类实践相关的示例?

提前致谢。

svn pre-commit-hook sonar-runner sonarqube

6
推荐指数
1
解决办法
4038
查看次数

Gradle无法解析Sonar-Runner的依赖关系

我正在尝试使用现有的gradle项目设置Sonar-Runner.我使用的是Sonar-Runner 2.4 Gradle 2.2.1,我们的Sonar服务器是4.3.1.当我运行gradle sonarRunner时,我收到以下错误:

无法解析配置':sonarRunner'的所有依赖项.无法解析外部依赖关系org.codehaus.sonar.runner:sonar-runner-dist:2.4因为没有定义存储库.

我在我的build.gradle文件中设置的nexus服务器中有工件"org.codehaus.sonar.runner:sonar-runner-dist:2.4".有没有人对这个错误有任何直觉?我已经广泛搜索了它,现在已经坚持了几个小时.

我的声纳跑步者的build.gradle非常简单:

apply plugin: 'sonar-runner"
sonarRunner{
        toolVersion = '2.4'
                sonarProperties{
                        property "sonar.host.url", "$sonarHost"
                }
}
Run Code Online (Sandbox Code Playgroud)

gradle sonar-runner sonarqube

6
推荐指数
1
解决办法
6499
查看次数

Jenkins无法使用带有自签名证书的HTTPS(HTTP + SSL)连接到SonarQube服务器

我使用SonarQube 5.3版,我正试图用Jenkins进行设置.我使用了本教程:使用SonarQube Scanner for Jenkins进行分析.

但这些是我得到的错误消息:

ERROR: Error during Sonar runner execution
    org.sonar.runner.impl.RunnerException: Unable to execute Sonar
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
        at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
        at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
        at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
        at org.sonar.runner.api.Runner.execute(Runner.java:100)
        at org.sonar.runner.Main.executeTask(Main.java:70)
        at org.sonar.runner.Main.execute(Main.java:59)
        at org.sonar.runner.Main.main(Main.java:53)
    Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.batch.bootstrap.BatchPluginInstaller
        at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:62)
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
        at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
        at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
        at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
        at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
        at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
        at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
        at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
        at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
        at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
        at org.picocontainer.DefaultPicoContainer.instantiateComponentAsIsStartable(DefaultPicoContainer.java:1034)
        at org.picocontainer.DefaultPicoContainer.addAdapterIfStartable(DefaultPicoContainer.java:1026)
        at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1003)
        at …
Run Code Online (Sandbox Code Playgroud)

jenkins sonar-runner sonarqube sonarqube5.3

6
推荐指数
1
解决办法
1万
查看次数

如何获得karma javascript junit xml报告到声纳

是否有业力记者可用于生成results.xml与声纳Generic Test Coverage插件兼容的文件?或者替换为junit文件的解析器karma-junit-reporter,它将由通用插件输出并使用?

我正在使用SonarQube 5.3和Karma/Jasmine

我想将来自业力的junit报告导入SonarQube,但无法轻易找到方法.类似于https://www.npmjs.com/package/mocha-sonar-generic-test-coverage for karma

仅供我参考 karma-junit-sonarqube-reporter(https://www.npmjs.com/package/karma-junit-sonarqube-reporter),但似乎期望测试的名称与文件的路径相匹配,这对我来说过于严格. karma-sonarqube-unit-reporter似乎未完成 grunt-karma-sonar似乎依赖于jstestdriver哪个被弃用

junit sonar-runner karma-runner sonarqube karma-jasmine

6
推荐指数
1
解决办法
2726
查看次数

如何在SonarQube中扫描隐藏文件夹,如".nameFolder"?

我正在尝试在项目上运行SonarQube 4.5.4.找到每个文件夹的文件和指标,除了隐藏的文件夹(如.m2,.something).可悲的是,那些文件夹是我更感兴趣的文件夹.

是否有其他人遇到同样的问题?这些文件夹是否被某些默认属性过滤掉了?

sonar-runner sonarqube sonarqube-scan

6
推荐指数
1
解决办法
164
查看次数

在 sonar.properties 中禁用 SCM 不起作用

看来添加sonar.scm.disabled=true到conf中是不行的。声纳扫描仪将报告以下错误:

错误:SonarQube 扫描仪执行期间出错 java.lang.IllegalStateException:在 org.sonar.plugins.scm.svn.SvnBlameCommand.blame(SvnBlameCommand.java:86) 上执行文件 betamao/betamao/admin.py 时出错。 sonar.plugins.scm.svn.SvnBlameCommand.blame(SvnBlameCommand.java:59) 在 org.sonar.batch.scm.ScmSensor.execute(ScmSensor.java:86) 在 org.sonar.batch.sensor.SensorWrapper.analysis( SensorWrapper.java:57) 在 org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58) ...

我仍然需要在“常规设置 > SCM”管理页面中禁用 SCM 才能使其正常工作。

这是一个错误吗?

我的环境是:

声纳扫描仪 3.0.3.778 与 openjdk8-u131

sonarqube-5.6.6lts 与 openjdk8-u131

java sonar-runner sonarqube sonarqube5.6

6
推荐指数
1
解决办法
2万
查看次数

Sonarqube授权 - 当sonar.forceAuthentication启用时如何使用sonar-maven-plugin进行授权

我有默认配置的sonarqube 6.5.当sonar.forceAuthentication标志设置为false时,我可以通过下面给出的命令创建和分析项目.

mvn sonar:sonar -Dsonar.host.url=https://mySonarHost/sonar -Dsonar.login=mySonarUserKey

当我启用sonar.forceAuthentication参数(sonar.forceAuthentication = true)时,我无法分析项目.我总是得到maven错误:

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project storm: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]

它不适用于默认管理员帐户,也不适用于创建的用户帐户(具有分析项目的权限).我也试过不使用用户密钥,但用户的登录名和密码(-Dsonar.login以及-Dsonar.passwordmaven配置),但它也不起作用.我试过使用不同的声纳版本(从4.5.7到5.6.6到最新的6.5,但我总是得到相同的结果).

在连接期间,我在access.log中收到了这样的消息:

IP_ADDRESS - - [08/Sep/2017:12:03:33 +0200] "GET /sonar/batch/index HTTP/1.1" 200 - "-" "ScannerMaven/3.3.0.603/3.5.0" "SOME_KEY"
IP_ADDRESS - - [08/Sep/2017:12:03:33 +0200] "GET /sonar/api/settings/values.protobuf HTTP/1.1" 401 - "-" "ScannerMaven/3.3.0.603/3.5.0" "SOME_KEY"
Run Code Online (Sandbox Code Playgroud)

我需要将sonar.forceAuthentication参数设置为true(只有受信任的用户才能访问它).

知道如何配置和访问带有凭证参数的maven的sonarqube吗?

authorization runner sonar-runner sonarqube sonarqube-scan

6
推荐指数
2
解决办法
1万
查看次数

静默处理 Gradle 任务失败

我有一个项目,仅当执行任务sonarqube后满足条件时才应运行特定的 Gradle 任务(任务)。build此任务可能会失败,因为它与有时不可用的远程服务器进行通信。如果服务器不可用,我想默默地处理错误并向控制台打印一些消息,而不是使整个构建失败。

目前我可以通过以下配置来做到这一点:

build.doLast {
    if ('desired.value' == System.properties['some.prop']) {
        try {
            tasks.sonarqube.execute()
        } catch(e) {
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是使用这种方法我会收到弃用消息。读了一点之后,我应该不应该使用execute,所以我想出了这个:

if ('desired.value' == System.properties['some.property']) {
    build.finalizedBy sonarqube
}
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,如果sonarqube任务失败,我的整个构建也会失败。在这种情况下我该如何处理sonarqube任务失败?

我正在使用 Gradle 4.5.1

编辑

使用以下命令运行构建:

./gradlew build
Run Code Online (Sandbox Code Playgroud)

像下面这样修改它会导致 Gradle 不仅忽略sonarqube失败,而且build忽略我不想要的失败:

./gradlew build --continue
Run Code Online (Sandbox Code Playgroud)

gradle sonar-runner build.gradle

6
推荐指数
1
解决办法
3210
查看次数