如何将另一个java项目打包为eclipse中的osgi依赖项



我有一个java项目,其中只包含java代码。它依赖于一个java插件。我想采用非插件项目,并将其转换为osgi包,并将两者放入功能中。我这样做了,然而它永远找不到班。它只是通过NoClassDefError每次,但一切似乎都很好。我创建了第二个项目,配置非常简单,只是为了确保:

清单。MF:

 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: test
 Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Export-Package: com.etc, 

jar被正确地构建并与真正的插件一起部署,但是当插件调用依赖于"test"的东西时,它永远不会加载类,它只是失败与org.eclipse.core.runtime.CoreException: Plug-in "something.something.tools" was unable to instantiate class "com.something.something.SomeTool".

生成的jar非常好,它包含com.something.something和MANIFEST下的所有类文件。MF文件也在那里

如果将非插件项目转换为插件项目,可能会容易得多。在Package Explorer中右键单击项目并选择Configure > Convert to Plug-In Projects...,然后使用正常的Eclipse结构将两个插件组合成一个特性。否则,您需要手工完成大量的配置,而且Eclipse文档不会提供太多帮助,因为它们希望每个人都使用这些对话框。

如果你也在非插件环境中使用这个项目,转换为插件应该不会引起任何问题——只是在非插件使用场景中,jar中会有一些额外的东西被忽略。

最新更新