【问题标题】:Maven scope for OSGi nested jars (private and shared dependency)OSGi 嵌套 jar 的 Maven 范围(私有和共享依赖项)
【发布时间】:2016-08-13 11:45:09
【问题描述】:

Maven 有几个dependency scopes,但是这些都不能很好地适应 OSGi 概念。

  1. OSGi 依赖项是不可传递的。

好的,可以指定排除all transitive dependencies

  1. OSGi 包可以使用一些依赖项,但不要导出它的模块。诸如“私人依赖”之类的东西

好的,只需使用 maven provided 范围,即不是不传递。

  1. OSGi 包可以使用一些依赖项,并导出其全部或部分包。 “共享依赖”之类的东西

嗯,这很棘手,因为 OSGi 具有更精细的基于包的导出。只需假设所有包都已导出,或者那些未导出的包无关紧要。 但这会与 Maven 可选依赖项 12 混淆

有没有办法让 Maven 开始说 OSGi 语言并给出类似的范围

  • private
  • exported / public

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

【问题讨论】:

  • OSGi 依赖关系 当然是可传递的!我无法理解剩下的问题。
  • 好吧,我需要用新问题再试一次
  • 也许吧。无论如何,根本不需要向 Maven 添加额外的范围来支持构建包。只需使用bnd-maven-pluginmaven-bundle-plugin 即可完成。

标签: java maven osgi dependency-management


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 2011-09-28
    • 1970-01-01
    • 2012-01-21
    • 2014-10-02
    • 1970-01-01
    相关资源
    最近更新 更多