我的目标是在Eclipse RCP环境中创建Excel 2007文档(XLSX)(Excel 2003很简单).我不想将POI jar放在/ lib文件夹中,而是想从目标定义中使用一个有效的POI OSGI包.
到目前为止,我所有的尝试都未能创建一个有效的 OSGI POI 3.8捆绑包.到目前为止我做了什么:
我将所有相关的JAR文件与Ant zip任务合并:
我使用wrap参数运行了bnd工具:java -jar biz.aQute.bnd.jar wrap ./poi-3.8-beta3-20110606-merged.jar
我必须使用bnd分别将/ ooxml-lib文件夹中的jar包捆绑在一起:
这导致ClassNotFoundExceptions org.w3c.dom.Node因为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)指令).
你为什么要合并罐子?为什么不尝试单独包装?
要尝试的第二件事是使用现有的OSGi罐子的xmlbeans,stax-api和dom4j
您还可以使用"org.osgi.framework.system.packages"配置JRE(系统包)导出的内容 - 这样您就可以选择不导出 org.w3c.dom
| 归档时间: |
|
| 查看次数: |
4551 次 |
| 最近记录: |