在JBoss Studio下构建的简单Java项目osgi包不能在Fuse

时间:2015-12-14 07:35:17

标签: maven jboss osgi bundle jbossfuse

我使用com.fazecast.jSerialCom-1.3.9.jar来构建一个串行的com java项目来处理从常规com端口输入的数据。这似乎是非常常见的java项目。该项目的纯Java jar独立运行。不知何故,根据需要,我将其放入我的maven项目pom.xml的依赖部分并配置了我的插件的一部分,然后构建OSGI包将在Fuse操作中生成错误。

       <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.3.6</version>
            <extensions>true</extensions>
            <executions>
                <execution>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>manifest</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
               <instructions>
                  <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                 <!--  <Import-Package>*,!com.fazecast.jSerialComm</Import-Package>  -->
                  <Embed-Dependency>jSerialComm</Embed-Dependency>
               </instructions>
            </configuration>
        </plugin>

我使用com.fazecast.jSerialCom-1.3.9.jar来构建一个串行的com java项目来处理从常规com端口输入的数据。这似乎是非常常见的java项目。该项目的纯Java jar独立运行。不知何故,根据需要,我将其放入我的maven项目pom.xml的依赖部分并配置了我的插件的一部分,然后构建OSGI包将在Fuse操作中生成错误。

1 个答案:

答案 0 :(得分:0)

看起来不错。您需要单独安装additioanal传递依赖项。

在OSGi中,编译依赖项和运行时依赖项是分开处理的。大多数所需的依赖项已经作为maven central中的OSGi包存在。

所以只需使用mvn:groupId / artifactId / version语法作为bundle安装commons-lang3。