我有一个只包含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文件。
答案 0 :(得分:0)
如果您只是将非插件项目转换为插件项目,则可能会容易得多。在Package Explorer中右键单击项目,然后选择Configure > Convert to Plug-In Projects...
然后使用普通的Eclipse结构从两个插件中编写一个功能。否则,您需要手动完成大量配置,Eclipse文档将无济于事,因为他们希望每个人都使用这些对话框。
如果您还在非插件上下文中使用此项目,转换为插件不应该导致任何问题 - 在jar中只会有一些额外的东西在非插件使用场景中被忽略。