【发布时间】:2016-03-08 03:42:08
【问题描述】:
在我的程序中使用第三方库之前,我想确保它包含的所有材料对我来说都是合法的。例如我有来自 repo1.maven.org 的jline jar
我想确认它有哪些包,所以我运行以下命令:
$ unzip -l jline-2.13.jar
Length Date Time Name
--------- ---------- ----- ----
0 08-10-2015 18:32 META-INF/
989 08-10-2015 18:32 META-INF/MANIFEST.MF
0 08-10-2015 18:32 jline/
... // more jline files
0 08-10-2015 18:32 META-INF/maven/
... // more maven files
0 08-10-2015 18:32 org/
0 08-10-2015 18:32 org/fusesource/
0 08-10-2015 18:32 org/fusesource/hawtjni/
... // more hawtjni files
0 08-10-2015 18:32 org/fusesource/jansi/
... // more jansi files
--------- -------
549270 133 files
$
从这个输出中我看到使用了 jline、hawtjni 和 jansi,所以我去那里找到许可证文件:
- https://github.com/jline/jline2/blob/master/LICENSE.txt
- https://github.com/fusesource/hawtjni/blob/master/license.txt
- https://github.com/fusesource/jansi/blob/master/license.txt
我还应该做些什么来确保不使用其他包吗?
额外的问题:因为这些都是 Apache 和 BSD 许可证(我不编辑它们的内容或显示它们的产品名称),我是否只需要说明这些库在我的项目中使用并包含它们各自的许可证? 在合法的堆栈交换中问这个问题可能会更好。
【问题讨论】:
-
为什么不用像 Maven 这样的构建工具而不必担心这个呢?因为这个依赖树可以很快变得非常高。