【发布时间】:2021-11-19 23:05:06
【问题描述】:
我在 Create-React-App 应用程序上使用 Blackduck 5.6.2 版,并使用 yarn v1.22.11 安装了依赖项。
Blackduck 在 GitLab CI 管道中作为作业执行。以前,我在运行扫描之前使用 npm 在 blackduck 步骤中安装包。 Blackduck 扫描仪无需任何显式配置即可获取项目名称和版本号。
我最近从 NPM 更改为 yarn 以利用选择性依赖解析功能来尝试克服 Blackduck 扫描器报告的嵌套依赖。一旦我将 Blackduck 步骤转换为使用纱线,Blackduck 就会在我的存储库中拾取 yarn.lock 和 package.json 文件以使用 Yarn 检测器,从输出中可以看出这一点(以及根据
Synopsys' documentation)。但是,它不再能够正确获取项目版本名称。
以下是表明这一点的消息:
2021-09-27 19:13:47 INFO [main] --- Determining project info.
2021-09-27 19:13:47 INFO [main] --- A project name could not be decided. Using the name of the source path.
2021-09-27 19:13:47 INFO [main] --- A project version name could not be decided. Using the default version text.
测试完成后,我访问 blackduck Web 控制台查看测试结果,我现在看到“默认检测版本”作为版本名称,而不是我之前的版本号。
我已尝试将 -detect.project.version.notes=./package.json 参数传递到启动 blackduck 扫描仪 shell 脚本的步骤中,但它仍然使用“默认检测版本”作为版本名称。
纱线检测器的文档在指定包含和排除工作区的参数、纱线二进制文件的路径以及是否应包含生产依赖项后停止。
有谁知道为什么 Yarn 检测器无法从 package.json 获取版本号,以及如何在不将硬编码值作为参数传递给扫描仪 shell 脚本的情况下解决此问题?
【问题讨论】:
标签: gitlab-ci create-react-app yarnpkg