OSGi可以轻松用于管理包依赖吗?

时间:2013-06-18 14:31:35

标签: java module osgi modularization

据我所知,OSGi可用于管理服务依赖关系,即在bundle之间共享POJO实例。但是我说我的库B.jar对我的其他库A.jar中的类具有编译时依赖性:

ProjectA/src/com/example/awesome/A.java

package com.example.awesome;
public class A {}

ProjectB/src/com/example/awesome/web/B.java

package com.example.awesome.web;
import com.example.awesome;
public class B extends A {}

OSGi是否有内置的声明方式在运行时强制执行此依赖项?

1 个答案:

答案 0 :(得分:3)

是的,使用Export-PackageImport-Package清单标题。

如果您使用自动构建系统,它可能会检测到该关系并为您添加这些标头。 Maven和Gradle都使用bnd来生成必要的清单标头。 bnd集成分别由maven-bundle-plugin和Gradle OSGi plugin提供。