osgi包如何知道接口?

时间:2013-11-08 18:19:39

标签: java maven osgi bundle

我正在学习使用apache felix处理osgi包。 我正在使用maven-bundle-plugin生成清单文件。

我创建了第一个包含一个接口的包,我将其导出以供其他人使用。 第二个包包含一个实现第一个包中创建的接口的类。 我配置了第二个包来导入第一个包导出的包。

当我编译第二个包时,我收到一个错误,告诉我他无法解析该接口。

我不确定我是否了解捆绑包的工作方式......

非常感谢...

[修改]更多信息: 我使用maven编译时遇到错误:

[INFO] Compilation failure
....../ServeurImpl.java:[17,36] error: cannot find symbol

ServeurImpl.java(第17行):

public class ServeurImpl implements Serveur {

Serveur是在第一个包中创建的界面。

1 个答案:

答案 0 :(得分:1)

由于您在单独的软件包中部署API,因此需要在实现API的软件包的pom.xml文件中提供一些内容来说明它的可用性。

在你的pom.xml中输入如下内容:

    <dependency>
        <groupId>the.group</groupId>
        <artifactId>Serveur</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>bundle</type>
        <scope>provided</scope>
    </dependency>

'提供'意味着容器会提供它......你说菲利克斯。

希望有所帮助。