小编G. *_*eam的帖子

SonarQube - 使用不同的字符集连接到oracle

我正在使用SonarQube进行代码分析.我想让Sonar连接到Oracle DB.我收到此错误 - 将上下文初始化事件发送到类org.sonar.server.platform.PlatformServletContextListener org.sonar.api.utils.MessageException的侦听器实例的异常:Oracle必须具有UTF8字符集和BINARY排序.NLS_CHARACTERSET是WE8MSWIN1252,NLS_SORT是BINARY. 除了UTF8之外,还有什么办法让Sonar使用Oracle charset?

sonarqube sonarqube-5.0 sonarqube-ops

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

SonarQube API 问题搜索仅返回 100 个结果

利用 SonarQube 5.1,我一直在尝试利用 API 搜索功能来收集与我当前项目相关的所有问题,以显示在散热器上。在 Web 界面上,SonarQube 显示有 71 个主要问题和 161 个小问题。

使用此搜索字符串 https://sonarqube.url.com/api/issues/search?projectKeys=myproject 'skey

我收到了包含 100 个结果的响应。当我仅处理 OPEN 项目的这些结果时,我总共收到 55 个问题。36个大修,19个小修。

这是通过 Powershell 脚本实现的,该脚本对 SonarQube 服务器进行身份验证并传入查询,然后将响应反序列化为我可以处理的数组。(计算主要/次要问题)

抛开背景,我的问题的核心是:有谁知道为什么我收到的回复被锁定在 100?在我的研究中,我看到其他人表示,由于存在一个突出的错误,对问题搜索的响应将上限为 500。然而,我正在寻找的预期问题数量远远低于这个数字。API 的说明表明它将返回前 10,000 个问题。是否有服务器端设置限制它将返回到搜索查询的输出?

提前致谢,

sonarqube sonarqube5.1 sonarqube-web

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

CNFE从6.0升级到6.1-RC1后

我正在使用Gradle 3.1和SonarQube 2.1的Gradle插件.当我gradle sonarqube使用SonarQube 6.0和适用于Java 4.2的SonarQube插件运行时,一切都按预期工作.但是,当我将SonarQube升级到6.1-RC1时,我得到以下堆栈跟踪:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':sonarqube'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:233)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:74)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:55)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.cpd.deprecated.DefaultCpdBlockIndexer
        at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:69)
        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.getLocalInstance(DefaultPicoContainer.java:606)
        at …
Run Code Online (Sandbox Code Playgroud)

gradle sonarqube sonarqube-scan

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

为什么findbugs会在此代码中抛出空指针取消引用?

我通过Sonarqube在我们的代码上运行findbugs,我得到一个空指针取消引用的错误:

有一个语句分支,如果执行,则保证将取消引用空值.

错误的代码就是这样:

public static boolean isBigDecimalDifferent(BigDecimal x, BigDecimal y) {
        return (x != null || y != null)
                && ((x != null && y == null) || (x == null && y != null) || x.compareTo(y) != 0);   
}
Run Code Online (Sandbox Code Playgroud)

我想知道这是怎么可能的.唯一可以实现NPE的地方是调用x.compareTo(y),但如果x = null,那么Java永远不会分析那个分支,对吗?

这是一个错误,还是我错过了Java分析这个语句的方式?


UPDATE

感谢您的投入.我最后建议他们改变它:

if (x!=null && y != null)
    return x.compare(y);
else
    return x!=y;
Run Code Online (Sandbox Code Playgroud)

我觉得有点清楚.如果没有人同意这个改变,我会按照建议做,只是忽略这个问题,即使我宁愿避免这个.

java findbugs

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

通过命令行参数设置SonarQube的Web上下文路径

是否可以使用命令行参数设置SonarQube的Web上下文路径?

通常你会sonar.web.context=/sonarqubesonar.properties文件中设置属性(或类似).但我正在使用Docker,并希望避免编辑sonar.properties.

使用Docker Compose,我得到以下内容,就像其他命令行参数的魅力一样:

services:
  sonarqube:
    image: sonarqube:5.4
    [...]
    entrypoint:
      - ./bin/run.sh
      - -Dsonar.log.level=INFO
      - -Dsonar.web.context=/sonarqube
Run Code Online (Sandbox Code Playgroud)

但似乎忽略了-Dsonar.web.context=/sonarqube:(有没有办法让SonarQube传递不同的上下文路径?

附加信息:这是相应的run.sh文件.

sonarqube sonarqube-ops

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

Sonarqube,回到原来的声纳方式

我正在使用sonarqube,我有点搞乱了声纳方式内的规则.有没有办法像往常一样把它放回去?就像更新java插件一样.因为我在sonarqube网站上的默认"声纳方式"配置文件中找不到规则列表.

谢谢.

java sonarqube sonarqube-web

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

无法使用最新版本启动 Sonarqube 服务器

启动声纳服务器时遇到 Java 进程启动器错误。请注意,我们使用了 Sonarqube-4.5.7、sonarqube-5.0.1、Sonarqube 5.6 和 JDK 7,8 组合。但仍然没有运气

以下是日志:

2016.06.20 18:31:24 INFO  app[o.s.p.m.JavaProcessLauncher] Launch process[search]: C:\Program Files\Java\jre7\bin\java -Djava.awt.headless=true -Xmx1G -Xms256m -Xss256k -Djava.net.preferIPv4Stack=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=C:\Users\swmuthuk\Documents\sonarqube-5.0.1\temp -cp ./lib/common/*;./lib/search/* org.sonar.search.SearchServer C:\Users\swmuthuk\AppData\Local\Temp\sq-process2908084003470791693properties
2016.06.20 18:31:25 INFO  sea[o.s.p.ProcessEntryPoint]  Starting search
2016.06.20 18:31:25 INFO  sea[o.s.s.SearchServer]  Starting Elasticsearch[sonarqube] on port 9001
2016.06.20 18:31:25 INFO  sea[o.elasticsearch.node]  [sonar-1466427684530] version[1.1.2], pid[4912], build[e511f7b/2014-05-22T12:27:39Z]
2016.06.20 18:31:25 INFO  sea[o.elasticsearch.node]  [sonar-1466427684530] initializing ...
2016.06.20 18:31:25 INFO  sea[o.e.plugins]  [sonar-1466427684530] loaded [], sites []
2016.06.20 18:31:27 INFO  sea[o.elasticsearch.node]  [sonar-1466427684530] initialized
2016.06.20 18:31:27 …
Run Code Online (Sandbox Code Playgroud)

java process sonarqube sonarqube-ops

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

SonarQube:是否可以更改JVM参数中的时区?

我有一台运行多个不同服务器的机器,它位于中欧的特定时区.

我需要在UTC时间运行SonarQube(4.5.7).

我取消注释以下行web/WEB-INF/config/environment.rb并重新启动SonarQube但服务器仍然在"系统信息"页面上显示原始时区.

config.time_zone = 'UTC'

这应该足以改变SonarQube的时区吗?因为那并没有真正起作用.

有没有办法user.timezone通过编辑wrapper.conf文件将属性传递给JVM ?看起来它可以工作,但它看起来不像我应该触摸该文件.

谢谢.

sonarqube sonarqube-4.5 sonarqube-ops

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

SonarQube分析失败

我正在使用SonarQube 6.1,我正在使用Symfony 2.8项目.

当我使用声纳扫描仪运行分析时,我得到一个分析成功,但结果在我的日志中失败:

Error Details

org.sonar.server.computation.task.projectanalysis.component.VisitException: Visit of Component {key=ThisIsMyFuckingProjectKeyFor:XXXXXX:src/AdminBundle/AdminBundle.php,type=FILE} failed
    at org.sonar.server.computation.task.projectanalysis.component.VisitException.rethrowOrWrap(VisitException.java:44)
    at org.sonar.server.computation.task.projectanalysis.component.VisitorsCrawler.visit(VisitorsCrawler.java:74)
    at org.sonar.server.computation.task.projectanalysis.component.VisitorsCrawler.visitChildren(VisitorsCrawler.java:110)
    at org.sonar.server.computation.task.projectanalysis.component.VisitorsCrawler.visitImpl(VisitorsCrawler.java:97)
    at org.sonar.server.computation.task.projectanalysis.component.VisitorsCrawler.visit(VisitorsCrawler.java:72)
    at org.sonar.server.computation.task.projectanalysis.component.VisitorsCrawler.visitChildren(VisitorsCrawler.java:110)
    at org.sonar.server.computation.task.projectanalysis.component.VisitorsCrawler.visitImpl(VisitorsCrawler.java:97)
    at org.sonar.server.computation.task.projectanalysis.component.VisitorsCrawler.visit(VisitorsCrawler.java:72)
    at org.sonar.server.computation.task.projectanalysis.step.ExecuteVisitorsStep.execute(ExecuteVisitorsStep.java:51)
    at org.sonar.server.computation.task.step.ComputationStepExecutor.executeSteps(ComputationStepExecutor.java:64)
    at org.sonar.server.computation.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:52)
    at org.sonar.server.computation.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:75)
    at org.sonar.server.computation.taskprocessor.CeWorkerCallableImpl.executeTask(CeWorkerCallableImpl.java:84)
    at org.sonar.server.computation.taskprocessor.CeWorkerCallableImpl.call(CeWorkerCallableImpl.java:57)
    at org.sonar.server.computation.taskprocessor.CeWorkerCallableImpl.call(CeWorkerCallableImpl.java:35)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: The manDays for language php is not a valid long number
    at org.sonar.server.computation.task.projectanalysis.qualitymodel.RatingSettings.getDevCost(RatingSettings.java:87)
    at org.sonar.server.computation.task.projectanalysis.qualitymodel.QualityModelMeasuresVisitor.computeDevelopmentCost(QualityModelMeasuresVisitor.java:126)
    at org.sonar.server.computation.task.projectanalysis.qualitymodel.QualityModelMeasuresVisitor.visitFile(QualityModelMeasuresVisitor.java:119)
    at org.sonar.server.computation.task.projectanalysis.component.PathAwareVisitorWrapper.visitFile(PathAwareVisitorWrapper.java:66) …
Run Code Online (Sandbox Code Playgroud)

php symfony sonarqube

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

SonarQube 版本 7 更新数据库失败

我们正在运行安装程序以将 SonarQube 更新到版本 7.0 - 我们遇到数据库故障(请参阅下面的堆栈跟踪)。

知道我们如何才能克服这个问题吗?

2018.02.07 07:16:47 INFO  web[][o.s.s.p.d.m.DatabaseMigrationImpl] Starting DB Migration and container restart
2018.02.07 07:16:47 INFO  web[][DbMigrations] Executing DB migrations...
2018.02.07 07:16:47 INFO  web[][DbMigrations] #1907 'Populate table live_measures'...
2018.02.07 07:16:48 ERROR web[][DbMigrations] #1907 'Populate table live_measures': failure | time=788ms
2018.02.07 07:16:48 ERROR web[][DbMigrations] Executed DB migrations: failure | time=790ms
2018.02.07 07:16:48 ERROR web[][o.s.s.p.d.m.DatabaseMigrationImpl] DB migration failed | time=902ms
2018.02.07 07:16:48 ERROR web[][o.s.s.p.d.m.DatabaseMigrationImpl] DB migration ended with an exception
org.sonar.server.platform.db.migration.step.MigrationStepExecutionException: Execution of migration step #1907 'Populate table …
Run Code Online (Sandbox Code Playgroud)

sonarqube sonarqube-ops

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

SonarQube Eclipse插件手册下载

我想下载SonarQube Eclipse插件并手动在Eclipse IDE上安装。(我知道可以通过Eclipse IDE的MarketPlace下载它,但是我需要手动进行。)有人知道在哪里可以实现吗?有任何官方网站吗?

sonarqube sonarlint-eclipse

0
推荐指数
1
解决办法
4832
查看次数

SonarQube自定义插件,在启动时失败

我正在开发一个自定义的SonarQube插件来创建项目特定的规则集.已编写自定义规则,并且使用JUnit成功执行规则.以下是自定义声纳规则.

@Rule(key = StringConstants.AVOID_SOCKETS_API_KEY)
public class AvoidSocketsApiRule extends IssuableSubscriptionVisitor {

    @Override
    public List<Tree.Kind> nodesToVisit() {
        return ImmutableList.of(Tree.Kind.VARIABLE);
    }

    @Override
    public void visitNode(final Tree tree) {
        final VariableTree variableTree = (VariableTree) tree;
        final Type type = variableTree.symbol().type();
        if (type.is(StringConstants.SOCKET_CHANNEL) || type.is(StringConstants.SERVER_SOCKET_CHANNEL)
                || type.is(StringConstants.ASYNC_SOCKET_CHANNEL) || type.is(StringConstants.ASYNC_SERVER_SOCKET_CHANNEL)) {
            this.reportIssue(variableTree.simpleName(), StringConstants.AVOID_SOCKETS_API_MESSAGE);
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

当我将应用程序打包到声纳插件并部署到sonarqube时,它给我一个非法的状态异常.我能够使用Junit复制该问题.

@Test
    public void test() {
        final CustomRulesDefinition rulesDefinition = new CustomRulesDefinition();
        final RulesDefinition.Context context = new RulesDefinition.Context();
        rulesDefinition.define(context);
        final RulesDefinition.Repository repository = context.repository(StringConstants.REPOSITORY_KEY);

        assertThat(repository.name()).isEqualTo(StringConstants.REPOSITORY_NAME);
        assertThat(repository.language()).isEqualTo(StringConstants.LANG);
        assertThat(repository.rules()).hasSize(RulesList.getChecks().size());

        this.assertAllRuleParametersHaveDescription(repository);
    }

    private …
Run Code Online (Sandbox Code Playgroud)

java sonarqube sonarqube-web

0
推荐指数
1
解决办法
290
查看次数