我们有一个 Maven 构建的 Netbeans 7.1 rcp 应用程序,它通过将 OSGi 模块包装在 Netbeans 模块包装器中,成功地混合了 OSGi 模块(打包:bundle)和 Netbeans 模块(打包:nbm)。我们希望从使用这些包装器迁移到直接使用 OSGi 模块以简化构建。大约有 30 个包装器、osgi 模块对,我想解决包装器的删除问题,一次一个模块对。
但是,当我们在依赖它的模块 pom 中将特定的包装器依赖替换为其 osgi 依赖时,并使用
<useOSGiDependencies>true</useOSGiDependencies>
在 nbm-maven-plugin 配置中。与其他包装器的任何其他依赖项突然无法构建传递依赖项在运行时不可用错误。
项目使用传递模块 [xxx] 中的类,这些类在运行时无法访问。
-- 其中 [xxx] 是 OSGi 模块的名称。
当然,我可以通过将包装器依赖项替换为它们包装的 OSGi 模块来修复构建,但这会大大增加迁移任务的规模。一旦我通过“修复”这些临时依赖项获得了构建,我选择迁移的 OSGi 模块成功地出现在一个新的“额外”集群中。但是在运行时,rcp 找不到其他 osgi 模块,因为我猜,在构建的其他地方,它们仍然被包装器引用。
这些包装器和直接的 OSGi 依赖项有什么办法可以共存?还是我必须一次性将所有 Netbeans 包装器迁移到 OSGi?
非常感谢,
菲尔·威尔金森。