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

时间:2013-06-01 11:12:53

标签: java eclipse eclipse-rcp eclipse-plugin

我有一个只包含java代码的java项目。它取决于java插件。我想采取非插件项目,并将其转换为osgi包并将两者都放入一个功能。我这样做了,但它永远找不到课程。它每次都通过NoClassDefError,但一切似乎都没问题。我创建了第二个项目,配置非常简单,以确保:

MANIFEST.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文件。

1 个答案:

答案 0 :(得分:0)

如果您只是将非插件项目转换为插件项目,则可能会容易得多。在Package Explorer中右键单击项目,然后选择Configure > Convert to Plug-In Projects...然后使用普通的Eclipse结构从两个插件中编写一个功能。否则,您需要手动完成大量配置,Eclipse文档将无济于事,因为他们希望每个人都使用这些对话框。

如果您还在非插件上下文中使用此项目,转换为插件不应该导致任何问题 - 在jar中只会有一些额外的东西在非插件使用场景中被忽略。