【问题标题】:sonar-scanner-2.9.0.670 throws java.lang.ExceptionInInitializerError inside docker containersonar-scanner-2.9.0.670 在 docker 容器内抛出 java.lang.ExceptionInInitializerError
【发布时间】:2017-03-21 16:16:25
【问题描述】:

在 docker 内部的这个构建中(在 travis-ci 上),sonar-scanner-2.9.0.670 会抛出一个 java.lang.ExceptionInInitializerError

ERROR: Error during SonarQube Scanner execution
   java.lang.ExceptionInInitializerError
    at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:166)enter code here

在此处构建日志(参见第 4660 行): https://travis-ci.org/laristra/flecsi/jobs/213157927#L4660

Sonarqube 在此处被放入 ubuntu:latest 容器中: https://github.com/laristra/flecsi-buildenv/blob/sonarqube/ubuntu#L14

【问题讨论】:

  • 你想达到什么目的?您尝试在哪个 SonarQube 实例上运行和推送分析?当你在做一个 OSS 项目时,为什么不尝试使用 SonarQube.com 并关注about.sonarqube.com/get-started
  • 是的,我正在尝试推送到 sonarqube.com,我的属性文件是这个:github.com/laristra/flecsi/blob/sonarqube/…
  • 我真的不明白为什么你需要一个 Docker 容器来达到这个目的......请阅读下面的答案。事情比你想达到的要容易得多。
  • 对不起,我应该提到,我们不能在 Travis-CI 上原生构建,因为他们的镜像缺少了 flecsi 的大部分依赖项,我们无法及时构建它们。出于这个原因,我们不能使用 SonarQube 分析 Travis Addon。

标签: docker sonarqube travis-ci


【解决方案1】:

您正在处理一个 C++ 项目:https://github.com/laristra/flecsi。 您正在使用 Travis-CI 构建它。 您想在 SonarQube.com 上对其进行分析。

您无需下载任何 SonarQube 扫描仪,也无需在 Docker 中设置任何 SonarQube。

请:

  • 关注Get Started guide
  • ,查看sample C/C++ project 以了解如何使用我们的 Travis 插件触发 SonarQube 分析
    • 它会自动下载并安装 SonarQube 扫描仪
    • 它会自动下载并安装 C/C++ Build Wrapper
    • 它会自动将所有内容配置为指向 SonarQube.com

【讨论】:

  • 由于上述原因,我们必须使用 docker 进行构建,并且在切换到 openjdk 后一切都按预期工作。我做了一个小玩具项目github.com/junghans/travis-docker-glue,它利用了 Docker、Travis-CI、SonarQube 和 Codecov.io。
【解决方案2】:

原来问题是 Oracle 的 JDK 使用 openjdk-8-jdk 解决了这个问题(在 docker 内部)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2018-10-13
    • 1970-01-01
    相关资源
    最近更新 更多