我的目标是创建 Excel 2007 文档 (XLSX) 在 Eclipse RCP 环境中(Excel 2003 很简单)。我不想将 POI jar 放在/lib 文件夹中 ,相反,我想使用目标定义中的工作 POI OSGI 包。
到目前为止,我所有的尝试都未能创建一个可用的 OSGI 包 POI 3.8 .到目前为止我做了什么:
java -jar biz.aQute.bnd.jar wrap ./poi-3.8-beta3-20110606-merged.jar
org.w3c.dom.Node
的 ClassNotFoundExceptions因为 xmlbeans-2.3.0.jar 从这个包中导出了四个类 org.w3c.dom
.通常 JavaSE-RuntimeEnvironment 会导出这些。 org/w3c/dom
来自 xmlbeans-2.3.0.jar 的文件夹并重新捆绑了 jar,但我得到了其他 ClassNotFoundExceptions。 这是我到目前为止的地方。我认为使用 bnd wrap 是不够的。可能我必须创建一个 bnd.properties 文件并有明确的 Export-Package/Import-Package 语句,但哪个有效?
那么,有没有人成功地创建了一个有效的 POI 3.8 OSGI 包?
最佳答案
如果您不需要该特定版本,只需使用 http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.org.apache.poi&version=3.0.2.FINAL该页面列出了它的依赖项等(如果您使用的是 Maven/Ivy,您也可以下载或引用)
可能是 http://engroup.sourceforge.net/maven2/engroup/osgi/commons/poi-osgi/3.1/或 http://ebr.springsource.com/repository/app/search?query=poi可以提供一些灵感(在第一个链接中有一个 maven POM,列出了 bundle plugin 部分中的 (bnd) 指令)。
你为什么要合并 jar ?为什么不尝试单独包装每个?
要尝试的第二件事是使用现有的 OSGi jar xmlbeans , stax-api和 dom4j
您还可以使用“org.osgi.framework.system.packages”配置 JRE(系统包)导出的内容 - 因此您可以选择不导出 org.w3c.dom
关于osgi - 如何为 Apache POI 3.8 创建一个可用的 OSGI 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063336/