OSGi可以很容易地用于管理包的依赖关系吗?



我知道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是否有一个内置的声明式方法来在运行时强制执行此依赖?

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

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

最新更新