我将创建一个Hibernate插件,该插件公开所有Hibernate jar文件并导出所包含的类。我的配置和数据将在另一个依赖于Hibernate的插件中。
然后,由于Hibernate使用反射,因此Hibernate插件需要能够从依赖于它的插件中加载类。为此,您需要使用Eclipse-BuddyPolicy指令。请查看有关Eclipse上类加载的BuddyPolicy的文档
我已经使用这种技术设置了Kodo JDO插件,效果非常好。附上我的Manifest.mf中的示例。
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Solarmetric Kodo
Bundle-SymbolicName: com.solarmetric.kodo
Bundle-Activator: com.solarmetric.kodo.KodoPlugin
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime
Eclipse-AutoStart: true
Eclipse-BuddyPolicy: global
Export-Package: com.solarmetric.ant,
com.solarmetric.apache.commons.collections,
com.solarmetric.apache.commons.collections.buffer,
com.solarmetric.apache.commons.collections.collection,
com.solarmetric.apache.commons.collections.functors,
com.solarmetric.apache.commons.collections.iterators,
com.solarmetric.apache.commons.collections.keyvalue,
您可以遵循标准的Hibernate教程,例如在hibernate.org或Gaven Kings的书中提供的文档,以在eclipse rcp项目中使用Hibernate。
最简单的方法是将与Hibernate相关的代码和配置包含在您当前开发的插件中。
因此,您的插件必须依赖于每个Hibernate项目所依赖的jar文件。您还可以通过一个独立的插件来提供这些库,并进行简单的导出。
但是请记住,Hibernate大量使用反射,您的可持久化类必须对您的持久性管理器可访问。
还有一个非常好的教程,介绍如何将Hibernate作为单独的插件集成到http://entwickler.de/zonen/portale/psecom,id,101,online,1082,.html,但不幸的是它只有德语版本。