我正在尝试使用 gulp 任务将伊斯坦布尔生成的报告上传到声纳仪表板,但失败并出现以下错误。看起来SonarQube 中的Build Breaker插件在将报告上传到 Sonar 之前超时。有什么办法可以调整这个插件吗?
我正在使用声纳 5.3。
15:42:43.411 INFO: Analysis report generated in /workspace/{project}/.sonar/report
15:42:43.430 INFO: ------------------------------------------------------------------------
15:42:43.430 INFO: EXECUTION FAILURE
15:42:43.430 INFO: ------------------------------------------------------------------------
15:42:43.430 INFO: Total time: 5:06.287s
15:42:43.609 INFO: Final Memory: 57M/2603M
15:42:43.609 INFO: ------------------------------------------------------------------------
15:42:43.609 ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Report processing did not complete successfully: FAILED
at org.sonar.plugins.buildbreaker.QualityGateBreaker.getAnalysisId(QualityGateBreaker.java:152)
at org.sonar.plugins.buildbreaker.QualityGateBreaker.execute(QualityGateBreaker.java:108)
at org.sonar.plugins.buildbreaker.QualityGateBreaker.executeOn(QualityGateBreaker.java:95)
at org.sonar.batch.phases.PostJobsExecutor.execute(PostJobsExecutor.java:65)
at org.sonar.batch.phases.PostJobsExecutor.execute(PostJobsExecutor.java:55)
Run Code Online (Sandbox Code Playgroud) 使用Jenkins 多分支流水线作业时,如果您Suppress Automatic SCM trigger在作业中选择,它将在索引分支后停止构建作业(强大的功能)。
然而,出于某种原因,这也会终止从 SCM 事件触发构建的能力!
有什么方法可以阻止构建在分支发现(分支索引)后触发,但仍然通过 SCM 事件正常构建?
我已经在 SonarQube 中配置了一个项目,并且分析是使用 JaCoCo 插件运行的,用于单元测试覆盖率的可视化。
测试在 Jenkins 中成功运行,报告可以在 Jenkins 工作区中看到。
但是,声纳仪表板显示覆盖率为 0%,但单元测试的数量仍然可以在声纳仪表板上看到。我尝试在命令行中使用以下属性。这些属性也在 SonarQube 配置中进行了配置。
-Dsonar.junit.reportsPath=target/surefire-reports -Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
Run Code Online (Sandbox Code Playgroud)
我是詹金斯的新手,我正在尝试解决一些问题。
有没有办法通过 Groovy 添加分支源行为。这是使用 Jenkins 分析 SonarQube 中的 GitHub 项目。
我正在创建一个多分支管道,但似乎无法弄清楚如何添加以下行为。

在 UI 中创建作业时,这些行为默认出现,但通过 Groovy 创建作业时不会出现。
我已将其定义为我的管道。知道如何添加这些其他参数吗?
multibranchPipelineJob('Foo') {
displayName('Foo')
description('Jenkins')
branchSources {
branchSource {
source {
github {
id('15')
repoOwner('12345')
repository('foo')
repositoryUrl('https://example.com')
configuredByUrl(true)
credentialsId('foo')
traits {
gitBranchDiscovery()
}
}
}
}
}
orphanedItemStrategy {
discardOldItems {
numToKeep(10)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试添加以下参数,但它会引发错误。
import jenkins.plugins.git.traits.*
def traits = []
traits.add(new TagDiscoveryTrait())
traits.add(new LocalBranchTrait())
gitSCMSource.setTraits(traits)
Run Code Online (Sandbox Code Playgroud)
有没有办法通过 Groovy 创建作业,但使用在 UI 中创建作业时出现的默认设置?
我试图在Hybris扩展的external-dependencies.xml中设置我的依赖项。问题在于它只是加载我在其中指定的库,而没有加载运行时库需要使用的依赖项。
例如,Aixs2-kernel加载Axiom-api,impl和adb等。在一个普通的Maven项目中,我不需要一一指定。
有什么方法可以使Hybris理解如何获取其余的信息?
我从事symfony项目,我想从声纳分析中排除一些生成的代码。
我想排除此路径命名的文件夹:src / Application / Sonata。
我尝试了多种排除声纳的方法,但徒劳无功:
sonar.exclusions=src/Application/Sonata/*
sonar.exclusions=src/Application/Sonata/**
sonar.exclusions=src/Application/Sonata/**/*
Run Code Online (Sandbox Code Playgroud)
这是我的sonar-project.properties文件
# Required metadata
sonar.projectKey=project
sonar.projectName=project
sonar.projectVersion=0.1.3
# Description
sonar.projectDescription=project a base symphony 2
# Encoding of the source code
sonar.sourceEncoding=UTF-8
sonar.exclusions=src/Application/Sonata/**/* ,src/project/Resources/public/js/lib/**/*, src/project/Resources/public/js/jquery.validate.js
Run Code Online (Sandbox Code Playgroud) 我有下面的实用程序方法,并且正在使用多个if语句并遇到认知复杂性问题。我浏览了一些链接,但是我不明白如何更改代码而不影响此方法的用户。
public static boolean isWrapperValid(WrapperClass wrapper, boolean isTechnicalToken){
String key=null;
boolean isValidWrapper = false;
if (wrapper != null && wrapper.length() > 7
&& wrapper.substring(0, 6).equalsIgnoreCase("XYZ"))
{
wrapper= wrapper.substring(7, wrapper.lastIndexOf('.')+1);
}
if(wrapper != null && wrapper.equalsIgnoreCase("TFR")) {
isValidWrapper=Boolean.TRUE;
}
try {
key = wrapper.getKey();
}
catch (Exception exception) {
return isValidWrapper;
}
if(key!=null) {
Date tokenExpiryTime = key.getExpiresAt();
if(tokenExpiryTime!=null) {
return isValidWrapper;
}
String algorithm=key.getAlgorithm();
if(!DESIRED_ALGO.equals(algorithm)) {
return isValidWrapper;
}
String value6=key.getType();
if(!DESIRED_TYPE.equals(value6)) {
return isValidWrapper;
}
if(key.getValue1()!=null && key.getValue2().size()>0 && …Run Code Online (Sandbox Code Playgroud) 对于下面的代码,声纳中显示了一个提示:
重构此代码以使用“静态最终”模式。
我不明白,这是什么问题。在声纳中也没有明确解释。
请帮我。
public Boolean validateLabelText(String labelValue, String fieldCell) {
return labelValue
.replaceAll(StringUtils.SPACE, StringUtils.EMPTY)
.equalsIgnoreCase(fieldCell.replaceAll(StringUtils.SPACE, StringUtils.EMPTY)
.replaceFirst(StringUtils.LF, StringUtils.EMPTY));
}
Run Code Online (Sandbox Code Playgroud) 我想编写一个 Maven 插件,它在构建过程中在特定源文件中进行简单的查找和替换。这可能吗?
有没有一种方法可以Sonar 5.1.1在仪表板GUI中完全运行分析?
如果不是,则有哪些步骤可以运行它?我似乎找不到一个可以逐步指导您的文档。
sonarqube ×6
java ×3
jenkins ×2
maven ×2
sonar-runner ×2
hybris ×1
jacoco ×1
maven-plugin ×1
sonarqube5.1 ×1
symfony ×1
unit-testing ×1