共计 946 个字符,预计需要花费 3 分钟才能阅读完成。
开源软件的代码开源在 github 这类公开的代码仓库,这给人一种错觉,让咱们认为能够随便的应用开源软件,其实开源软件有 license 协定,敌对的协定比方 Apache 协定,能够在商业软件中应用,不开源,而像 GPL 协定,一旦应用就必须开源。
商业软件产品不可避免会应用大量的开源组件,但大部分状况不开源,所以在上线前有必要查看组件的 license,比方是否依赖 GPL。最终上线前可能应用内部商业软件进行扫描,比方 Black Duck 和 Fossa,然而在小守业公司或者让商业银行扫描前,能够采纳开源软件进行预扫描,上面简略介绍调研的开源 license 扫描软件状况。
“Linux 基金会企业开源指南 ” 提供了开源我的项目相干的组件,从中找到 license 相干的开源工具,包含 LicenseFinder、scancode-toolkit、fossology。测试中发现,scancode-toolkit、fossology 是对本我的项目内代码的 license 进行格局查看,不满足咱们的须要。LicenseFinder 在测试过程中有”执行 mvn 失败“的问题,因而也无奈应用。Linux 基金会举荐的开源我的项目在这次需要前全军覆没了。
采纳 maven 的 plugin,license-maven-plugin,后果很香。应用办法,这篇文章里写的很分明”利用 maven 自动化检测 License“。其实,LicenseFinder 底层源码也依赖了 license-maven-plugin。
应用 gradle 构建的我的项目,能够思考 License Gradle Plugin, 另外还有 google 公布的 plugin,oss-licenses-plugin
plugin 根本的原理都是,下载并扫描依赖库的 pom 文件或者 META_INF 文件夹里的 LICENSE.md。极少数依赖我的项目里没有版本阐明,这部分在 license-maven-plugin 的后果里有特地阐明,这时能够手动到 maven 仓库里查看。在测试中发现这样的包其实在 maven 仓库里也没有 license,因为依赖库信息就是从 maven 仓库下载的。
集体认为 license-maven-plugin 的扫描办法以及数据源是牢靠的,扫描后果能作为 license 依赖状况的反对数据。