OSGI: bundles, class inheritance and maven scope



我有三个 maven 项目作为三个 osgi 捆绑包(即一个项目是一个捆绑包)。我有三个类 - 每个捆绑包中一个类。

Project/Bundle 1:
class A{}
pom:    
Project/Bundle 2:
class B extends A{}
pom:
 <dependency>
     <groupId>com.company</groupId>
     <artifactId>project1</artifactId>
     <version>1.0.0</version>
     <scope>provided</scope>
</dependency>
Project/Bundle 3
class C extends B{}
pom:
 <dependency>
     <groupId>com.company</groupId>
     <artifactId>project2</artifactId>
     <version>1.0.0</version>
     <scope>provided</scope>
</dependency>

为什么当我编译 project3 时,我收到无法访问类 A 的异常?只需将项目 1 作为依赖项添加到项目 3 即可解决此问题。但是为什么?

这是因为提供的范围。它会中断传递查找。

最新更新