8.3. import-Package 标头不完整

如果已安装所有必需的功能和捆绑包,并且您仍然收到 ClassNotFound 错误,这意味着捆绑包的 MANIFEST.MF 文件中的 Import-Package 标头不完整。在生成捆绑包的 Import-Package 标头时,maven-bundle-plugin (请参阅 第 5.2 节 “修改现有 Maven 项目”)是一个很好的帮助,但您应该注意以下几点:

  • 请确定您在 Maven 捆绑插件配置的 Import-Package 元素中包含通配符。通配符指示插件扫描 Java 源代码,并自动生成软件包依赖项列表。
  • Maven 捆绑包插件 无法 找出动态依赖项。例如,如果您的 Java 代码明确调用类加载程序来动态加载类加载程序,则捆绑包插件不会考虑此帐户,且所需的 Java 软件包不会在生成的 Import-Package 标头中列出。
  • 如果您定义了蓝图 XML 文件(例如,在 OSGI-INF/blueprint 目录中),所有来自 Blueprint XML 文件的依赖项都会 在运行时自动解决