乔梁 | 2022-04-19

连续两篇关于依赖管理准则的文章发出了,在「持续交付 2.0」的微信交流群中引发了热烈的讨论。

准则的原文在这里

大家最感兴趣的问题是:

有了准则,但是怎么落地呢?有什么工具吗?

经过一番讨论,群友们还真翻出来了一些工具。

google 弄了一个 https://deps.dev/ ,名为 Open Source Insights,可以查看一些开源包的依赖了。

另外,还有一些商业化工具。

业界领先 snykwhitesourcefossasanchore 国内:(未知) 悬镜 OpenSCA 墨菲 murphysec

而且,还分不同的流派。

就拿maven来说,基本上会分俩个派系, 一类是像 snyk,whitesource,fossas,anchore,github,snyk是 ts ,whitesource是 ts ,fossas是 go,anchore是 go ,github是 ruby ,这些都是用其它的语言来解析 maven 的 pom 文件,也就是关心直接依赖,如果有漏洞升级直接依赖,不关关心传递和间接依赖。

另一类则像 ort,是用java和kotlin来实现,调用maven的方法,像dependency:tree的结果一样。

这两个方案都有缺点,都不能满足所有业务方的诉求。

** forrester 还出了一份关于 SCA 的调研报告 **

原始链接如下:

https://www.forrester.com/report/the-forrester-wave-tm-software-composition-analysis-q3-2021/RES176091

除了这些专门工具, 一些现代 IDE 也出了相应的功能。

Github 上也有一些能力。

有人提到 SonarCube。SonarCube 的一个问题就是什么都能做,太杂乱了。

另外,群友从这些工具,甚至聊到了软件汉化的生意~~

哈哈哈~