假设我们有一个go.mod
文件,它定义了第三方依赖项。语言中是否有功能或方法来获取第三方许可列表,最好没有第三方工具?不幸的是,我无法共享任何代码,因为我尚未找到任何潜在的解决方案。
例如,我们有:
module github.com/myGoProject
require (
github.com/sirupsen/logrus v1.4.2
github.com/stretchr/testify v1.2.2
)
如何获得输出:
麻省理工学院
麻省理工学院
答案 0 :(得分:3)
我最近也必须这样做,但是没有找到任何“官方”方式。我使用了一个名为go-license-detector
的工具来对抗供应商提供的第三方依赖项,以自动完成大部分工作。
go mod vendor
下载所有第三方库依赖项的源代码。这会将依赖项的所有源代码放入名为“ vendor”的目录中。 cd
进入供应商目录并运行:
license-detector `cat modules.txt |grep "^#" |cut -d' ' -f2`
这将对每个下载的模块运行license-detector
,并输出每个模块的可能许可证列表。您将获得如下所示的输出:
github.com/influxdata/influxdb
91% MIT
github.com/influxdata/platform
99% MIT
84% MIT-feh
github.com/kr/logfmt
100% Unlicense
98% MIT
93% JSON
84% MIT-feh
通常,最高许可证是正确的许可证,但是最好仔细检查每个许可证。