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 文件的依赖项都会 在运行时自动解决。