2016-03-07 35 views
0

在我的程序中使用第三方庫之前,我想確保它包含的所有材料對我來說都是合法的。比如我有jline jar從repo1.maven.org查找罐子中的所有依賴項

我想確認哪些軟件包已經讓我運行下面的命令:

$ 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是使用,所以我去找那裏的許可文件:

有沒有其他的事情我應該做,以確保沒有其他的軟件包被使用?


額外的問題:因爲這些都是Apache和BSD許可證(我不修改其內容或展示自己的產品名稱),我只需要說明的是,這些庫是在用我的項目幷包括他們各自的許可證? 這可能會更好地問合法堆棧交換。

+0

爲什麼不使用像Maven這樣的構建工具而不必擔心呢?因爲這個依賴關係樹可能會非常快地變得非常高。 – Tunaki

回答

1

給定庫的許可證應聲明或包含其捆綁/包含的其他依賴項的許可證。如果庫具有可傳遞的Maven依賴性,那麼您需要檢查其pom.xml文件,以瞭解它在構建時還有哪些內容,以及如何單獨獲得許可證。

+0

對於這個特定的例子,jline的pom.xml使用了與' test'列出的庫,例如easymock和powermock。這些不在jar的解壓縮輸出中。所以我認爲這意味着我不需要爲他們包含許可? – flakes