2011-04-19 122 views
1

我現在正在建立一個java項目。在過去,我們始終將第三方的所有內容(解壓縮)包含在我們的發行版中,例如ant,junit,jfreechart等。我想知道是否有可能將這些相關的.jar文件,但不是我們的軟件版本中的所有內容?那麼我們可以得到一個更小巧的版本。那些第三方圖書館許可證不允許我們這樣做?你的方式是什麼?謝謝,如何在Java軟件中包含第三方庫/軟件?

回答

0

如果他們的許可證聲明你應該分發衍生品與來源,那麼你有義務這樣做的法律。

另一個問題是,如果他們真的強迫這一點。就我所記得的GPL而言,如果你願意的話,你應該分發源代碼,但還有另一種方法 - 你必須很容易地向用戶提供源代碼。所以你可以放棄你的可分發資源。

任何方式,你應該看許可證。

編輯:

如果你將決定收拾整個程序分成單獨的JAR,我建議Proguard。它是Java優化器,收縮器等等 - 全在一起!要將所有內容打包到一個jar文件中,只需將所有jar文件(程序和庫)指定爲程序jar文件,並只指定一個jar文件作爲輸出。通常它工作得很好。

0

如果可能的話,您真的想保留單獨的罐子。查看maven appassembler插件。它以一種可控制的方式爲您製作一個「不可移動」的安裝程序,做得很好。在結果中,您將擁有一個非常簡單的「repo」目錄,其中包含所有依賴關係。

0

我使用maven-assembly-plugin爲每個應用程序構建一個jar。該插件可以快速處理將所有庫庫解壓縮的麻煩,並將整個庫重新組合爲一個單獨的罐子。它還支持使用指定的主類來編寫清單,這使得可以通過命令行簡單地運行應用程序(無論如何,只要指定一個類路徑參數就簡單多了)。

相關問題