Liferay 7 module项目的依赖问题

build.gradle中的dependencies和bnd.bnd的Private-Package的关系是,build.gradle解决编译时候所需的所有依赖问题,但是这些依赖并不会被打包到build出来的jar包中,当你把你生成的jar包扔到一个OSGi容器中,它会去容器中寻找它性需要的导入包,如果在这个容器中没有它需要的导出包,则会无法运行,当我们发现这一情况需要把容器中没有的包打包到这个jar包中一起部署上去,bnd.bnd的Private-Package header可以实现这个功能。

同时需要注意的是:如果当OSGi容器中提供这个包,但是你自己的JAR包又把这个包打包进去了,可能会发生找不到这个包的错误,因为类加载器不同的缘故,这时你就需要把bnd.bnd的Private-Package header中的这个包去掉

posted @ 2017-06-06 13:29  Hibou  阅读(355)  评论(0编辑  收藏  举报