Liferay 7 OSGi第三方jar包依賴問題


發現遇到這個問題的人挺多的,現在跟新一下好好寫。

 

在開發Liferay的時候,我們常常會遇到Unresolved requirement: Import-Package: {package name}問題

出現這個問題原因是什么呢?

因為我們的module依賴了第三方Jar包,雖然gradle幫你解決了這個依賴問題,讓你的代碼編譯通過了,但是當你把這個Module部署到Liferay Portal(可以理解為一個OSGi容器)上去的時候,

這個容器中並沒有包含你所需要的jar包,所以就會報錯。我們需要做的是把你所依賴的jar包打包到這個容器中去。

 

把你需要使用的依賴作用域改成 compileInclude 即可, 它會幫你把你需要的第三方jar包及其傳遞依賴都打包到這個module中去。

 

以下是關於解決這類問題的教程鏈接:

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/adding-third-party-libraries-to-a-module

https://issues.liferay.com/browse/LPS-76436

https://web.liferay.com/zh/web/zhao.jin/blog/-/blogs/%E8%AF%91%E6%96%87%EF%BC%9Aosgi-module%E4%BE%9D%E8%B5%96

https://web.liferay.com/web/user.26526/blog/-/blogs/osgi-module-dependencies

 

_____更新於2019/9/16

鑒於近期還有不少人咨詢我這個問題,特此來更新這篇回答

現在Liferay使用Target Platform來解決這個問題,也就是你只需要在配置文件中指定你使用的是Liferay的哪個版本,后台會幫你下載好這個版本所需要的對應版本依賴包,不需要自己在gradle文件中配置依賴Jar包的版本。Liferay真真是很好的。

現附上Liferay官方Target Platform操作文檔:https://portal.liferay.dev/docs/7-1/tutorials/-/knowledge_base/t/managing-the-target-platform-for-liferay-workspace

基本上所有的問題都能在官方文檔中找到相應解答。官方文檔中沒有的,可以移步Liferay論壇,公司的員工都會查看論壇問題及提供相應解答。

論壇網址為:https://liferay.dev/forums/-/message_boards/category/243728

然后可以QQ上搜索Liferay相關的群,里面都是大佬

最后的最后,也可以聯系本菜鳥QQ:516946908

 

 

 

 

希望遇到以上問題的開發人員都能成功解決,同時,解決不了的歡迎咨詢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM