包含用于JUnit测试的OSGI jar

时间:2014-04-13 19:12:33

标签: java maven osgi pom.xml

我有一个OSGI包,它使用外部jar进行记录。

<dependency>
    <groupId>Tracking-Service</groupId>
    <artifactId>Tracking_Service</artifactId>
    <version>1.0</version>
    <type>jar</type>
</dependency>

在构建期间,我有一个JUnit测试,它调用了日志jar。但是这些罐子没有部署到OSGI框架中,我得到了NPE。

最后我需要有一个记录jar,它也在

<scope>provided</scope>
<scope>test</scope>

有没有办法将日志jar包括为模拟测试?

1 个答案:

答案 0 :(得分:1)

使用OSGI包获取该jar有两种可能的方法

  • 获取该jar(捆绑)的OSGI版本并进行部署(如果使用Karaf,请尝试搜索该功能是否可用)Spring Repo for OSGI bundles

当且仅当您没有找到第一个

  • 您可以将其嵌入到您的包中,如下所示

在你的maven构建插件中添加以下

<Embed-Dependency>jar_name</Embed-Dependency>

修改

如果你正在使用eclipse,你可以在你的pom文件中使用以下插件

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.3.7</version>
    <extensions>true</extensions>
    <configuration>
        <instructions>
            <Embed-Dependency>jar_name</Embed-Dependency>
        </instructions>
    </configuration>
</plugin>