Liferay 7 OSGi第三方jar包依赖问题
发现遇到这个问题的人挺多的,现在跟新一下好好写。
在开发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
希望遇到以上问题的开发人员都能成功解决,同时,解决不了的欢迎咨询。