【问题标题】:How to add the latest Jersey bundles to eclipse OSGI build如何将最新的 Jersey 捆绑包添加到 Eclipse OSGI 构建
【发布时间】:2020-05-04 08:07:54
【问题描述】:

希望各位高手能帮我解决以下问题:

我们使用 jersey for REST 实现了一个基于 Eclipse 的 RCP 应用程序。我们正在定义我们的目标平台,因此不允许以任何方式使用本地捆绑包(特别是因为我们基于 TYCHO 的构建是由在容器中运行的 Jenkins 完成的,因此将 jar 放到那里会是个问题)。因此,据我了解,我们的 targetplatform 引用的包需要在软件站点上可用。我们的 nexus 中没有 P2 支持(并且不会得到它),因此没有选择安装它们。

现在我们想使用最新的 Jersey 版本(我认为是 2.29.1) - 但我们没有找到可以使用的更新站点。轨道上可用的最新球衣套装非常落后(我认为是 2.22)。

我曾考虑将球衣 JAR 包装在一个自己的插件包中,然后重新导出这些包,但 AFAIK 球衣 jar 包含激活器,然后它们不会运行......所以这听起来也不像选项。

所以问题是:将当前球衣版本添加到我们的目标平台的推荐方法是什么?

提前感谢您的帮助, 克里斯

【问题讨论】:

  • 问题是所需版本中的 Jersey 没有 OSGi 捆绑包,还是 Jersey OSGi 捆绑包仅作为 JAR 存在但通过 Tycho 构建需要 p2 更新站点?
  • 后者 - 它们是 OSGI 包,但我不知道如何告诉 tycho 去哪里获取它们。我们使用 target-platform-configuration 工件来配置 tycho,但目标平台可能只引用站点。最让我困惑的是:我们处于“日食世界”中,我发现没有更新站点托管当前版本的球衣....这完全出乎意料,所以我想我必须在这里遗漏一些非常明显的东西...
  • 然后我需要让这个更新站点在网络服务器上可用 - 对吧?或者第谷可以直接从文件系统中使用它吗?对我来说听起来像是为了解决对某些捆绑包的依赖关系而付出了很多努力 - 伙计,我希望整个 eclipse / P2 构建将被终止并替换为标准 maven 构建...... ;-( 无论哪种方式 - 非常感谢为您提供帮助。
  • 更新页面只是一个目录(类似于本地 Maven 存储库)。 (静态)网络服务器只需要通过 HTTP/HTTPS 将其公开。如果您有 OSGi 捆绑 JAR,put them into the subfolder plugins and simply create artifacts.jar and content.jar e.g. via Tycho。就这样。与 OSGi 相比,Maven 只能解决构建时的依赖关系,而不是运行时的依赖关系,并且没有提供足够的元数据来解决 Import-Package 依赖关系。

标签: eclipse build jersey osgi tycho


【解决方案1】:

如果您的 maven 依赖项已经是捆绑包,您可以简单地允许 tycho 使用它们来解决需求,请参阅https://wiki.eclipse.org/Tycho/Target_Platform#.22POM_dependencies_consider.22

从 Tycho 2.0 开始,也可以下载它们,检查版本控制并通过“目录”位置条目在目标平台中引用它们

<location path="${project_loc:name_of_your_target_project}/extra_bundles" type="Directory"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 2010-12-06
    • 2015-03-12
    • 2018-09-09
    • 2015-01-12
    • 1970-01-01
    相关资源
    最近更新 更多