【问题标题】:Why can't MANIFEST.MF see packages from Maven's pom?为什么 MANIFEST.MF 看不到来自 Maven 的 pom 的包?
【发布时间】:2012-11-23 14:34:53
【问题描述】:

所以我的 POM 中有这样的东西:

<dependency>
  <!-- jsoup HTML parser library @ http://jsoup.org/ -->
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.7.1</version>
</dependency>   

它从某处的 maven repo 获取 jsoup-1.7.1.jar 并将其放在我的 Maven Dependencies 文件夹中。

现在我可以在我的代码中使用它(Eclipse 不会抱怨),但是当我尝试在我的 MANIFEST.MF 文件中添加对它的依赖时:

Import-Package: org.osgi.framework, org.jsoup, org.jsoup.nodes

Eclipse 一直在抱怨:

No available bundle exports package 'org.jsoup.nodes'
No available bundle exports package 'org.jsoup'

有人可以向我解释为什么会这样吗? (我很好奇确定MANIFEST.MF 看到了什么的过程)

【问题讨论】:

    标签: eclipse maven eclipse-plugin osgi equinox


    【解决方案1】:

    当您使用 eclipse PDE 时,您必须创建一个包含所有必要包的目标平台。正常的依赖解析不与目标平台耦合。因此,您必须将每个依赖项添加到 maven pom 和目标平台。

    顺便说一句。如果您正在处理基于服务器的 OSGi 项目,最好不要使用 PDE。您还可以使用 maven 捆绑插件创建捆绑包。它会分析您所做的导入并自动创建清单。在大多数情况下,这比第一种方式的 PDE 清单要好得多,并且它与 maven 一起工作得更好。

    见:http://www.liquid-reality.de/display/liquid/2011/02/15/Karaf+Tutorial+Part+1+-+Installation+and+First+application

    【讨论】:

    • 谢谢,但我已经定义了一个目标平台,我认为我不需要向它添加每个依赖项......但想想看 - 这是有道理的。但我仍然不明白为什么我的“插件”清单不能只使用 maven 获取的 jar 中的交互。这个“maven-bundle”插件做了什么,使它工作?它不能生成清单 - 因为我已经有一个清单并且它不起作用。
    • 另外,我刚刚意识到我不能真正将它放入目标平台,因为它不是更新站点或类似的任何东西。因此,我基本上必须下载 jar,将其放入目录中,然后将该目录放入我的目标运行时中……这会否定整个 maven 的优势。只是想...
    • 这个过程基本上有两个步骤。第一步是创建清单文件。这就是 maven bundle 插件可以提供帮助的地方。第二步是 OSGi 框架内的依赖解析。在 PDE eclipse 中使用目标平台执行此操作。如果你不使用 PDE(就像在我的教程中一样),那么 OSGi 依赖关系解析只发生在 OSGi 服务器中,就像我的例子 Apache Karaf 一样。当然,这仍然意味着您必须在 Karaf 中提供所有依赖项,但 Karaf 可以使用 maven 依赖项,因此匹配得更好。
    • @drozzy:如果您使用Nexus 作为本地 Maven 存储库代理,您可以使用p2 plugin 使 Maven 存储库中的所有内容也可用作 p2 存储库。
    • @BjörnPollex 谢谢,但我在一家公司工作,我只需要免费且无需许可的工具。
    【解决方案2】:

    只需在该包清单文件中添加一个导出语句,记住每次导入都应该有 exportenter link description here

    【讨论】:

      猜你喜欢
      • 2011-12-03
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 2012-09-10
      • 2021-09-23
      • 2012-06-26
      • 1970-01-01
      相关资源
      最近更新 更多