GW SonarQube加速器与Guidewire BillingCenter 10集成时的文件路径不匹配问题
这种路径不匹配的坑我之前在做Guidewire和SonarQube集成时也踩过,结合你的情况来看,大概率是这几个原因导致的:
可能的原因
Gradle配置或任务输出路径不统一
SonarQube加速器的脚本里可能硬编码了Gradle守护进程默认的缓存路径作为检查结果的读取位置,但你的BillingCenter在生成GOSUE检查结果时,是用项目根目录作为默认输出路径,两边路径没对齐,就出现了找不到文件的报错。加速器与BillingCenter版本兼容性问题
你用的SonarQube加速器版本可能是针对Guidewire 9.x系列适配的,而BillingCenter 10对Gradle的工作路径做了调整,但加速器的路径逻辑没同步更新,所以还是在旧的Gradle守护缓存目录找文件。任务启动方式的差异
如果你启动代码检查任务的方式和加速器文档要求的不一样——比如文档里要求用Gradle守护进程启动任务,但你直接在项目根目录运行了检查命令,就会导致输出路径走了项目根目录,而不是守护进程的缓存目录。
可行的解决方法
- 手动统一检查结果输出路径
在BillingCenter项目的build.gradle文件中,找到GOSUE检查任务的配置块,手动指定输出路径为加速器预期的目录:
gosueInspection { outputs.dir file("C:\\BillingCenter\\gradle\\cache\\daemon\\6.5.1") }
配置后,每次运行检查任务时,结果文件会直接生成到正确的路径,不用再手动移动。
检查并升级加速器版本
确认下你使用的SonarQube加速器是否有针对BillingCenter 10的适配版本,如果有的话,升级到对应版本后,路径逻辑应该会同步更新,解决这个问题。调整任务启动方式
尝试用Gradle守护进程的方式启动检查任务,运行以下命令:
gradle --daemon gosueInspection
这种启动方式可能会让检查结果自动输出到Gradle守护进程的缓存目录,和加速器的预期路径对齐。
另外,你手动移动文件后能正常在SonarQube看到GOSUE问题,说明核心的分析和上报逻辑是没问题的,就是路径配置的问题,按上面的方法调整应该就能解决。
备注:内容来源于stack exchange,提问作者Ajeesh

