禁用特定项目的SonarQube插件

时间:2018-04-11 05:42:57

标签: sonarqube sonarqube-scan

切入追踪:如果我想执行以下两项操作,我认为我需要从sonarqube服务器禁用SonarQube Github插件 特定项目

发布到sonarqube服务器& 使用github插件向github报告。
据我了解,在SonarQube服务器上安装SonarQube Github Plugin禁止整个服务器永久存储任何分析。因此,我需要找到一种方法来停止仅为特定项目使用github插件。有没有办法做到这一点?

P.S。背景故事
我原来的问题是Can't publish results to Sonarqube server) 但是,在找到Why does SonarQube not show results, although the analysis succeeded?后,用户" Wirone"说它没有在声纳服务器中显示结果,因为Sonarqube Github插件强制将sonar.analysis.mode设置为previewissues,而不是publish
根据Wirone的说法,除非模式设置为publish,否则sonarscanner不会将结果发送到服务器。
我试图找出sonar.analysis.mode的确切含义,但文章https://groups.google.com/forum/#!topic/sonarqube/JguVVO4OorESonarQube analysis mode: preview vs issues根本没有帮助,我仍然对于什么模式感到困惑如果我想在声纳服务器而不是github中看到分析结果,请设置。

图1:整个服务器都是空的。这个服务器实际上正在工作,它已经在github上评论了几个星期了。但是,服务器本身根本不存储任何分析 - 它只是将所有内容传递给github,然后忘记它而不在数据库本身中存储任何内容。原因?图2。

enter image description here

图2:这就是原因。 Github插件可防止将sonar.analysis.mode设置为publish。如果没有publish模式,服务器永远不会将结果存储在自身中。我不能卸载它,因为我需要github评论功能 因此,我需要一个单独的项目来存储整个分析,但为此我需要为该特定项目禁用此插件行为......

enter image description here

1 个答案:

答案 0 :(得分:1)

解决:我认为在SonarScanner属性中留下github凭据是个问题。删除属性中的所有github相关信息后,它似乎正在工作。

向下滚动到底部以阅读结论。

Git集成工作配置:

sonar.projectKey=${componentName}
sonar.projectVersion=0.1
sonar.sourceEncoding=UTF-8
sonar.analysis.mode=issues
sonar.profile=My_Analysis_Profile
sonar.github.repository=${repository}
sonar.github.endpoint=https://customossendpoint/api/v3
sonar.github.login=someusername
sonar.github.oauth=somehashkey123
sonar.login=id
sonar.password=pass
sonar.github.pullRequest=${pr}
sonar.host.url=http://sonarserver:19000
sonar.issuesReport.console.enable=true 
sonar.github.disableInlineComments=false
sonar.sources=.
sonar.exclusions=
sonar.java.binaries=**/target/classes

试图让它发布到服务器,但分析无法启动,因为"不支持sonar.analysis.mode = publish"错误讯息:

sonar.projectKey=${componentName}
sonar.projectVersion=0.1
sonar.sourceEncoding=UTF-8
sonar.analysis.mode=publish
sonar.profile=My_Analysis_Profile
sonar.github.repository=${repository}
sonar.github.endpoint=https://customossendpoint/api/v3
sonar.github.login=someusername
sonar.github.oauth=somehashkey123
sonar.login=id
sonar.password=pass
sonar.github.pullRequest=${pr}
sonar.host.url=http://sonarserver:19000
sonar.issuesReport.console.enable=true 
sonar.github.disableInlineComments=false
sonar.sources=.
sonar.exclusions=
sonar.java.binaries=**/target/classes

回到"问题"模式,因为没有人知道模式的目的是什么,并试图通过删除github相关的选项(它没有发送到github,但它现在没有发送到github)停止发布到github服务器):

sonar.projectKey=${componentName}
sonar.projectVersion=0.1
sonar.sourceEncoding=UTF-8
sonar.analysis.mode=issues
sonar.profile=My_Analysis_Profile
sonar.login=id
sonar.password=pass
sonar.host.url=http://sonarserver:19000
sonar.issuesReport.console.enable=false
sonar.sources=.
sonar.exclusions=
sonar.java.binaries=**/target/classes

终于找到了答案:

sonar.projectKey=${componentName}
sonar.projectName=${componentName}
sonar.projectVersion=0.1
sonar.sourceEncoding=UTF-8
sonar.analysis.mode=publish
sonar.profile=My_Analysis_Profile
sonar.login=id
sonar.password=pass
sonar.host.url=http://sonarserver:19000
sonar.issuesReport.console.enable=false
sonar.sources=.
sonar.exclusions=
sonar.java.binaries=**/target/classes

结论:sonar.analysis.mode非常令人困惑。 issuespreview似乎几乎相同;它不会将结果存储在服务器中,它只是一个管道,或者通过在手动运行sonarrunner时显示在控制台上,或者通过将其流水线化到sonarqube github插件作为注释发布。
当sonarqube github插件处于活动状态时,它禁止issuespreview以外的任何模式。要将其发布到服务器,需要将其设置为publish。为此,我们需要确保不使用github插件。 我们可以"禁用"插件项目只需省略任何与github相关的属性(即sonar.github.login)。