- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我维护一个大型(> 500,000 LOC)Java 项目的构建过程。我刚刚在夜间构建的末尾添加了 Sonar 分析步骤。但是执行需要三个多小时......这不是一个严重的问题(它在一夜之间发生),但我想知道我是否可以加快它的速度(以便我可以在需要时在工作时间手动运行它).
我可以调整任何 Sonar、Hudson、Maven 或 JDK 选项来改善这种情况吗?
[INFO] ------------- Analyzing Monolith
[INFO] Selected quality profile : Sonar way, language=java
[INFO] Configure maven plugins...
[INFO] Sensor SquidSensor...
[INFO] Java AST scan...
[INFO] Java AST scan done: 103189 ms
[INFO] Java bytecode scan...
... (snip)
[INFO] Java bytecode scan done: 19159 ms
[INFO] Squid extraction...
[INFO] Package design analysis...
... (over three hour wait here)
[INFO] Package design analysis done: 12000771 ms
[INFO] Squid extraction done: 12277075 ms
[INFO] Sensor SquidSensor done: 12404793 ms
1200 万毫秒 = 200 分钟。那是很长一段时间了!相比之下, Sonar 步骤之前的编译和测试步骤不到 10 分钟。据我所知,该进程受 CPU 限制;更大的堆没有效果。我不知道,也许由于缠结/重复分析而必须采用这种方式。当然,我知道拆分项目是最好的选择!但这需要大量的工作;如果我可以同时调整一些配置,那就太好了。
有什么想法吗?
最佳答案
我站在你的立场上:在一个 200 万以上的 loc 项目中(实际上应该在几年前拆分成子项目),我从未见过在计算后 4 天内完成的包设计分析...
截至SONAR-2164 (Add an option to skip the quadratic "Package design analysis" phase) ,我已经提交了一个补丁,允许用户在他们的 Maven 项目文件中设置为真,以便跳过包设计分析。此补丁正在等待批准,目前计划包含在 v2.7 中。
关于java - 如何加快 Sonar 的包装设计分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3435687/
在为jhipster配置以下docker容器之后,除了声纳,其他一切都很好: docker run --name jhipster -w / home / jhipster / app -v〜/ jh
最新的 3.3 sonar-maven-plugin 和 5.6 LTS 作为网络服务器。 使用 mvn sonar:sonar 运行 Sonar 分析( Scanner for Maven ) 忽略
我有一个 cobertura.ser 文件,是在集成测试和系统测试时生成的。现在我想将我的覆盖范围导入 Sonar 服务器。 如何实现这一点,以便在执行 mvn sonar:sonar 时覆盖范围应考
场景:我们有一个 Jenkins maven 构建,它在父 pom 上执行 Sonar : Sonar 。我希望此构建的所有模块都显示为单个 Sonar 项目。目前,我们只有一个带有子模块的 Sona
我有一个看起来像这样的 build.xml 文件: 当我运行文件时,我得到: The prefix "sonar" for element "sonar:sonar" is
我尝试使用标准 maven sonar:sonar 目标在 Jenkins 上使用 java 项目运行 Sonar 分析,并使用后步骤 >> 执行 SonarQube 扫描仪。我使用的maven目标是
我想知道 sonar.projectKey、sonar.projectName 和 sonar.projectVersion 是否有任何标准。 我正在 git 环境中工作,需要对同一 git 存储库的
我有一个很大的困惑,当我们有 Sonar 服务器时 Sonar 扫描仪有什么用?当我使用 soarqube 服务器分析一个项目时,它进行了分析并且运行良好。我仍然很困惑为什么我们也需要扫描仪。 与ec
Sonar 与 jenkins 一起正常运行了 6 个月,没有出现任何故障。从上周开始,我看到一些 jenkins 作业出现以下错误,导致作业失败。 [ERROR] Failed to execute
鉴于相同的代码和具有相同规则的相同 SonarQube 服务器,我在使用 mvn sonar:sonar 与 sonar-scanner 扫描时发现的错误和漏洞数量截然不同。 code> CLI 和
我正在编写一个 Sonarqube Java 自定义规则,但在我尝试分析我的代码时一直出现此错误: "SonarQube is unable to analyze file 'File Path' o
我正在尝试将 SonarQube 与 Azure Devops 集成。我已在 SonarQube 管理员中完成配置(管理 > 配置 > 常规设置 > ALM 集成,选择 Azure DevOps 选项
我正在尝试将 SonarQube 与 Azure Devops 集成。我已在 SonarQube 管理员中完成配置(管理 > 配置 > 常规设置 > ALM 集成,选择 Azure DevOps 选项
我想与Jenkins一起针对Maven 2项目启动SonarQube分析。我首先在构建配置中使用了目标sonar:sonar。 但是我刚刚找到了Jenkins的SonarQube插件。为什么要使用它?
将Sonar 4.2(正常运行)与gradle(已测试版本1.11和1.12)一起使用,配置了sonar-runner: allprojects { if (rootProject == pr
我将 Sonar 与 Jenkins 一起使用以进行持续集成和代码分析。我learned该 Sonar 默认包括 Checkstyle、FindBugs、JaCoCo、PMD ,所以我们不需要配置项目
我们想在我们的项目中使用 SonarQube 和一些 CI 工具。 Sonar 服务器 url 在主 pom.xml 中配置。 项目中有几个团队成员。那么当一个团队成员在本地执行 sonar:sona
命令 mvn sonar:sonar 执行的 Maven 生命周期阶段是什么? 虽然我看到了在屏幕上运行的日志,但在非常高的水平上,我发现了测试、安装。 考虑下面的例子, 我有一个像下面这样的mave
我有几个 groovy/grails 项目,我正在使用 sonar-runner 来分析它们。他们工作得很好,直到今天我开始收到这个错误: ERROR: Error during Sonar runn
当我运行声纳时,我的代码覆盖率总是为 0。我使用的是三叶草。 pom.xml 文件中的条目下方 11 1.18.20 Hoxton.SR11
我是一名优秀的程序员,十分优秀!