發現遇到這個問題的人挺多的,現在跟新一下好好寫。
在開發Liferay的時候,我們常常會遇到Unresolved requirement: Import-Package: {package name}問題
出現這個問題原因是什么呢?
因為我們的module依賴了第三方Jar包,雖然gradle幫你解決了這個依賴問題,讓你的代碼編譯通過了,但是當你把這個Module部署到Liferay Portal(可以理解為一個OSGi容器)上去的時候,
這個容器中並沒有包含你所需要的jar包,所以就會報錯。我們需要做的是把你所依賴的jar包打包到這個容器中去。
把你需要使用的依賴作用域改成 compileInclude 即可, 它會幫你把你需要的第三方jar包及其傳遞依賴都打包到這個module中去。
以下是關於解決這類問題的教程鏈接:
https://issues.liferay.com/browse/LPS-76436
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
希望遇到以上問題的開發人員都能成功解決,同時,解決不了的歡迎咨詢。