Eclipse 中的 OSGi 无法解析依赖关系
Posted
技术标签:
【中文标题】Eclipse 中的 OSGi 无法解析依赖关系【英文标题】:OSGi in Eclipse cannot resolve dependencies 【发布时间】:2011-12-03 01:54:43 【问题描述】:我正在开发一个 OSGi/Equinox 插件,但似乎无法让 Hibernate 依赖项工作。我已经使用 Eclipse 将 Hibernate 依赖项添加到我的 POM 中,并且它已成功下载它们。
但是,我根本无法在任何项目类中使用它们——就好像它们甚至没有被添加为依赖项一样。
为什么我不能简单地将 Hibernate 添加为依赖项,然后在我的代码中使用它? 缺少什么?
我知道这应该是非常直接的,我认为我在某个地方遗漏了一些东西。一个小指针将不胜感激。
干杯
【问题讨论】:
【参考方案1】:我假设您使用的是 Eclipse 插件开发环境 (PDE)?如果是这样,您需要将包 org.hibernate.cfg
(可能还有其他)添加到您的包的导入包中(转到清单编辑器的依赖项选项卡)。
PDE 的方法是只允许您的代码查看您首先明确导入的包。 Bndtools 等其他工具允许您的代码查看构建路径上的所有包,然后根据您实际使用的内容生成 OSGi Import-Package
语句。
【讨论】:
感谢您的回复。没有 org.hibernate 包出现在 PDE 中的 Imported Packages 下,并且在手动添加时显示错误,所以我猜我需要先使用 BND 创建一个 Hibernate 包装? Neil,感谢您为我指明了正确的方向,我最终需要使用 BndTools 来创建 Hibernate 包。虽然学习曲线相当陡峭,但我仍然有一些与 Hibernate 相关的异常(即我的域类的 ClassNotFoundException),尽管我离目标更近了。谢谢!【参考方案2】:添加到您的 pom 后,您将其构建为 mavne 项目还是 eclipse 项目? 我的意思是先构建为;
mvn 全新安装
然后创建一个eclipse项目
mvn eclipse:eclipse -o
然后将其导入工作区..您将能够使用库
【讨论】:
我使用的是 Eclipse 而不是直接使用 Maven,它也需要是一个 Eclipse 插件项目。 Maven 在查找和下载依赖项时没有任何问题,但是该插件似乎无法在任何源文件中解析它们。以上是关于Eclipse 中的 OSGi 无法解析依赖关系的主要内容,如果未能解决你的问题,请参考以下文章