OSGi嵌套jar的Maven范围(私有和共享依赖)

时间:2016-04-20 16:28:39

标签: java maven osgi dependency-management

Maven有几个dependency scopes,然而这些并不适合OSGi概念。

  1. OSGi依赖项不可传递。
  2. 好的,可以指定排除all transitive dependencies

    1. OSGi包可以使用一些依赖,但不要导出其模块。像“私人依赖”这样的东西
    2. 好的,只使用maven provided范围,这不是不可传递的。

      1. OSGi包可以使用一些依赖关系,并导出其全部或部分包。像“共享依赖”这样的东西
      2. 嗯,这很棘手,因为OSGi有更精细的基于包的导出。假设所有包都是导出的,或者那些未导出的包无关紧要。 但是,对于Maven可选依赖项12

        ,这会变得混乱

        Maven是否有办法开始讲OSGi语言并给出范围如

        • private
        • exported / public

        是否只有将Maven用于非平凡的OSGi项目的好例子?

1 个答案:

答案 0 :(得分:-1)

Maven有一个插件,可以完成创建OSGI包所需的一切。这是maven-bundle-plugin

Maven是一个构建工具,它的范围与它构建的应用程序的范围不同。也就是说,maven提供的范围仅用于开发,并且仅与项目相关。

Maven捆绑插件基于Swiss arm knife of OSGI, BND Tools

如果您使用eclipse,那么eclipse已经支持在Eclipse Plugin Development Environment中开发OSGI包。