我現在正在建立一個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. Laravel:使用第三方軟件包
- 3. 防止第三方軟件包導入
- 4. 無法導入第三方軟件包
- 5. 如何在django中自定義第三方軟件包
- 6. 在EMR中使用第三方軟件
- 7. 在本地開發第三方軟件包(或庫)
- 8. 根據第三方庫安裝帶有ext_module的python軟件包
- 9. 如何將第三方軟件包導入Meteor?
- 10. 如何去更新第三方軟件包?
- 11. 如何替換第三方nuget軟件包的依賴關係?
- 12. 如何編輯Meteor的第三方軟件包
- 13. Java軟件包/庫函數
- 14. Android - Java軟件包和庫
- 15. Java軟件包?
- 16. 在redhat上的kickstart中安裝第三方軟件包
- 17. 在Python中安裝第三方軟件包
- 18. 在第三方軟件包配置中使用Symfony表達式
- 19. 如何在R軟件包中包含所有軟件包依賴關係?
- 20. 如何在cordova插件中包含第三方javascript nodejs庫?
- 21. 如何列出安裝在Centos中的第三方軟件
- 22. MAVEN - 添加第三方軟件
- 23. 第三方連接池軟件?
- 24. Linux軟件包儲存庫中的* -dev軟件包實際上包含什麼?
- 25. 監視目錄中沒有第三方軟件包的更改
- 26. 在Golang測試/嘲笑第三方軟件包
- 27. 如何在使用NuGet安裝軟件包後包含軟件包?
- 28. 重新包裝第三方軟件的安裝解決方案
- 29. 如何在Symfony 2.1中的composer.json中提供第三方庫並在我們的軟件包中訪問庫?
- 30. 三維查看軟件/庫?