2

我知道 OSGi 可用于管理服务依赖关系,即在包之间共享 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 是否有内置的声明方式来在运行时强制执行这种依赖关系?

4

1 回答 1

3

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

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

于 2013-06-18T14:31:34.867 回答