Glassfish OSGI具有依赖性,如何实现?

Glassfish OSGI具有依赖性,如何实现?,glassfish,dependencies,osgi,Glassfish,Dependencies,Osgi,我有一个常规的maven jar项目,它具有反射库等依赖项,我希望 把它转换成osgi,我已经做过了 在不同的(maven)jar中创建了一个公共接口层 项目,并将其作为依赖项添加到捆绑包中 将osgi模块的类型更改为“bundle” 创建了BundleActivator的实现 在pom中添加了此插件: org.apache.felix maven捆绑插件 2.3.7 真的 my.package.MyServiceActivator my.package.exp* !组织反思,??? slf4

我有一个常规的maven jar项目,它具有反射库等依赖项,我希望 把它转换成osgi,我已经做过了

  • 在不同的(maven)jar中创建了一个公共接口层 项目,并将其作为依赖项添加到捆绑包中
  • 将osgi模块的类型更改为“bundle”
  • 创建了BundleActivator的实现
  • 在pom中添加了此插件:
  • org.apache.felix
    maven捆绑插件
    2.3.7
    真的
    my.package.MyServiceActivator
    my.package.exp*
    !组织反思,???
    slf4j api;范围=编译,???
    

    这里是它丢失的地方,我需要找出“导入包”和“嵌入依赖项” 而且,更重要的是了解如何将其作为拉链或, 也许可以使用ORB(或Gogo),这样它就可以使用所有依赖项JAR进行部署

    有什么想法吗

    G


    顺便说一句:org.reflections包还没有准备好OSGi

    您似乎对OSGi和Maven Bundle插件的工作方式感到困惑。 也许阅读Felix指南会帮助您:

    基本上,您应该有如下内容:

    <plugin>   
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <extensions>true</extensions>
      <configuration>
        <instructions>
          <Bundle-Activator>my.package.MyServiceActivator</Bundle-Activator>
          <Export-Package>
            my.package.exp.*
          </Export-Package>
          <Import-Package>
            !org.reflections*,*
          </Import-Package>
          <Embed-Dependency>
             org.reflections
          </Embed-Dependency>
        </instructions>
      </configuration>
    </plugin>
    
    
    org.apache.felix
    或者只是Karaf(只需在deploy文件夹中抛出一个JAR,您将立即将其包装为一个OSGi包),例如

    <plugin>   
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <extensions>true</extensions>
      <configuration>
        <instructions>
          <Bundle-Activator>my.package.MyServiceActivator</Bundle-Activator>
          <Export-Package>
            my.package.exp.*
          </Export-Package>
          <Import-Package>
            !org.reflections*,*
          </Import-Package>
          <Embed-Dependency>
             org.reflections
          </Embed-Dependency>
        </instructions>
      </configuration>
    </plugin>