1

我正在学习使用 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 是在第一个包中创建的接口。

4

1 回答 1

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>

“提供”意味着容器会提供它……你说菲利克斯。

希望有帮助。

于 2013-11-08T19:39:07.957 回答