【问题标题】:How to add cglib to a OSGI manifest of RCP client?如何将 cglib 添加到 RCP 客户端的 OSGI 清单?
【发布时间】:2017-03-13 09:36:51
【问题描述】:

我想在RCP 客户端中使用cglib。 RCP 客户端是使用maventycho plugin 构建的。我们正在使用清单优先策略。

这是我的 MANIFEST.MF:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: INFO+ RCP Common UI Plug-in
Bundle-SymbolicName: a.company.prj.rcp.common.ui
Bundle-Version: 8.0.14.qualifier
Bundle-Vendor: Schweizerische Bundesbahnen SBB
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-Activator: a.company.prj.rcp.common.ui.CommonUIPlugin
Bundle-ActivationPolicy: lazy
Export-Package: 
 a.company.prj.rcp.common.ui,
 ...
 a.company.prj.rcp.common.ui.wizards.page
Import-Package: 
 org.apache.log4j;version="1.2.17"
Require-Bundle: 
 org.eclipse.ui;bundle-version="3.7.0",
 org.eclipse.ui.forms;bundle-version="3.5.101",
 com.ibm.ws.jpa.thinclient;bundle-version="8.0.6",
 ...
 a.company.prj.rcp.core;bundle-version="8.0.14",
 ...

要添加 cglib,我将 Import-Package 部分更改为:

Import-Package: 
 net.sf.cglib;version="3.2.0",
 org.apache.log4j;version="1.2.17"

现在 Eclipse 抱怨:

No available bundle exports package 'net.sf.cglib'

Ayn 想知道如何在这个环境中包含 cglib?

【问题讨论】:

  • 你需要一个 cglib Bundle 来在你的环境中提供这个包。在 Eclipse 中,您通常使用自定义目标平台(.target 文件,例如参见 Tutorial)来执行此操作,您也可以在 Tycho 构建中引用该平台。

标签: maven osgi tycho cglib


【解决方案1】:

您应该将cglib jar 文件构建到插件中并在Eclipse 中安装它,然后才能使用它。你可以参考这个链接:How can I add the external jar to the eclipse rcp application?

【讨论】:

    【解决方案2】:

    您需要将cglib 捆绑包添加到您的目标平台,即第谷在解决依赖关系时将考虑的所有捆绑包的集合。你有三个选项可以这样做(取自Tycho wiki page关于这个主题):

    1. 您可以直接add an entire p2 repository to your target platform
    2. 您可以use a .target file 并在其中引用cglib 捆绑包(正如stempler 已建议的那样)。
    3. 您可以在cglibdeclare a Maven <dependency> 并让第谷“考虑”它。

    由于您已经有一个可用的 Tycho 构建,我建议您使用您或您的同事之前在构建中使用过的任何选项。

    另外注意:选项 1 和 2 要求 cglib 包在 p2 存储库中可用,而选项 3 有效,即使该包来自像 Central Repository 这样的“普通”Maven 存储库。但在所有三种情况下,cglib JAR 必须是一个有效的 OSGi 包,即包含一个 OSGi MANIFEST.MFBundle-SymbolicName 等。

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 2013-09-24
      • 2021-02-10
      相关资源
      最近更新 更多