CodeQL生成数据库报错Spawned process exited abnormally处理


前提

解决的是参考这篇教程学习CodeQL时遇到的问题:CodeQL从入门到放弃

解决方案

原命令

database create ~/CodeQL/databases/micro-service-seclab-database  --language="java"  --command="mvn clean install --file pom.xml" --source-root=~/CodeQL/micro-service-seclab/

改为

database create ~/CodeQL/databases/micro-service-seclab-database  --language="java"  --command="mvn clean install -DskipTests --file pom.xml" --source-root=~/CodeQL/micro-service-seclab/

也就是在 mvn clean install 后加上 -DskipTests 跳过项目单元测试。

原理分析

核心报错:

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

说明 SpringBoot 在加载应用上下文时尝试连接数据库,但找不到 hibernate.dialect,也无法从数据库连接中自动推断,因此失败。

解决逻辑

CodeQL 构建数据库的本质是追踪项目的编译过程,因此不需要运行测试。只要项目代码能成功编译,CodeQL 就能生成数据库。所以直接跳过。

其他注意点

还是应该尊重教程的环境(JDK版本和Maven版本)


文章作者: Fetyloi
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Fetyloi !
  目录