我使用 Maven 来构建我的 web 应用程序项目,当我将一些依赖库添加到 pom 文件时,它会再次递归地向项目添加一些依赖 jar。有没有办法找出或限制只有具有某种类型许可证的罐子——比如 Apache 许可证、BSD 等应该包括在内。或者有没有办法找出一个 jar 文件在 GPL/ASL 等之下,而无需访问应用程序中每个 jar 的网站?
4 回答
Maven “项目信息报告”插件生成一个依赖关系报告,其中包括依赖关系的许可证。这是一个例子。
显然,这取决于依赖 POM 正确声明其依赖关系,并且它要求您“在线”构建站点文档。
在收购我工作的一家公司期间,收购公司使用以下软件/咨询来完成您所描述的事情。
http://www.blackducksoftware.com/transact
尽管我猜您可能正在寻找免费的替代方案。可能还有其他方法,但该公司这样做赚钱的事实表明替代方法可能不太彻底/准确。
我还发现这个网站 ( https://www.versioneye.com ) 提供了许可证信息。例如,https ://www.versioneye.com/java/tomcat:jasper-runtime/5.5.23说许可证:Apache License 2.0
2017 年 10 月 19 日
我将在今年年底前关闭 VersionEye!
大约 6 年前,我开始了这个项目,到目前为止,这是一个充满起伏的旅程。典型的 StartUp 过山车。我从柏林的一家大型 VC 那里筹集了资金,之后几乎破产了。再次从小天使投资者那里筹集资金以防止破产。赢得了全球最大的软件公司之一作为客户,并为公司建立了稳定的收入。
许可证扫描器的免费替代品是“scancode-toolkit”。它能够扫描您的代码库以获取版权信息、许可文本等。
但就像@Stephen C 在他的回答中提到的那样,它并不总是能够检测到依赖项的许可证。