我現在正在建立一個java項目。在過去,我們始終將第三方的所有內容(解壓縮)包含在我們的發行版中,例如ant,junit,jfreechart等。我想知道是否有可能將這些相關的.jar文件,但不是我們的軟件版本中的所有內容?那麼我們可以得到一個更小巧的版本。那些第三方圖書館許可證不允許我們這樣做?你的方式是什麼?謝謝,如何在Java軟件中包含第三方庫/軟件?
1
A
回答
0
如果他們的許可證聲明你應該分發衍生品與來源,那麼你有義務這樣做的法律。
另一個問題是,如果他們真的強迫這一點。就我所記得的GPL而言,如果你願意的話,你應該分發源代碼,但還有另一種方法 - 你必須很容易地向用戶提供源代碼。所以你可以放棄你的可分發資源。
任何方式,你應該看許可證。
編輯:
如果你將決定收拾整個程序分成單獨的JAR,我建議Proguard。它是Java優化器,收縮器等等 - 全在一起!要將所有內容打包到一個jar文件中,只需將所有jar文件(程序和庫)指定爲程序jar文件,並只指定一個jar文件作爲輸出。通常它工作得很好。
0
如果可能的話,您真的想保留單獨的罐子。查看maven appassembler插件。它以一種可控制的方式爲您製作一個「不可移動」的安裝程序,做得很好。在結果中,您將擁有一個非常簡單的「repo」目錄,其中包含所有依賴關係。
0
我使用maven-assembly-plugin爲每個應用程序構建一個jar。該插件可以快速處理將所有庫庫解壓縮的麻煩,並將整個庫重新組合爲一個單獨的罐子。它還支持使用指定的主類來編寫清單,這使得可以通過命令行簡單地運行應用程序(無論如何,只要指定一個類路徑參數就簡單多了)。
相關問題
- 1. 如何打包第三方軟件以及我的軟件包?
- 2. 防止第三方軟件包導入
- 3. 根據第三方庫安裝帶有ext_module的python軟件包
- 4. 如何將第三方軟件包導入Meteor?
- 5. 如何編輯Meteor的第三方軟件包
- 6. 如何替換第三方nuget軟件包的依賴關係?
- 7. Java軟件包/庫函數
- 8. 在Python中安裝第三方軟件包
- 9. 在第三方軟件包配置中使用Symfony表達式
- 10. 如何在R軟件包中包含所有軟件包依賴關係?
- 11. 如何在cordova插件中包含第三方javascript nodejs庫?
- 12. 如何列出安裝在Centos中的第三方軟件
- 13. 第三方連接池軟件?
- 14. Linux軟件包儲存庫中的* -dev軟件包實際上包含什麼?
- 15. 重新包裝第三方軟件的安裝解決方案
- 16. 三維查看軟件/庫?
- 17. 創建僅包含所需軟件包的RPM軟件包
- 18. 錯誤ITMS-90207:軟件包不包含可執行軟件包
- 19. 在webpack中包含第三方庫
- 20. golang是否有下載的第三方軟件包的中央存儲庫?
- 21. 在yocto中安裝來自第三方軟件包的二進制文件
- 22. 在使用RPM構建軟件包時使用yum從第三方回購安裝軟件包
- 23. 如何使用僅包含工具的軟件包進行軟件包恢復?
- 24. 可以依靠很多第三方軟件包嗎?
- 25. 是否有第三方軟件修改SSIS包?
- 26. 應該`make clean`移除子模塊和第三方軟件包?
- 27. 從第三方二進制軟件包構建RPM
- 28. 錯誤通過NPM安裝的第三方軟件包angular4
- 29. 「在軟件庫中找不到軟件包」錯誤來自OpenWrap
- 30. 什麼第三方搜索引擎軟件/庫共享主機