Tag: bndtools

如何在OSGi中使用Apache POI

我想在OSGi中使用Apache POI来编写带有流式OOXML API(SXSSF)的Excel工作簿。 流式API自POI 3.9起可用。 由于最新的Apache POI 3.11jar不是捆绑包: 在OSGi中使POI工作的最佳方法是什么? 我尝试了两种方法: 将jar子直接嵌入将使用它们的唯一束中 使用POIjar作为捆绑包装预先包装 我绝望地将所有依赖项放在一起。 首先关于在我的包中嵌入POI jar:我的bndtools文件包含 -buildpath: \ … libs/dom4j-1.6.1.jar;version=file,\ libs/poi-3.11.jar;version=file,\ libs/poi-ooxml-3.11.jar;version=file,\ libs/poi-ooxml-schemas-3.11.jar;version=file Private-Package: \ … org.openxmlformats.schemas.*,\ org.apache.poi.*,\ org.dom4j.*,\ com.microsoft.schemas.office.x2006.*,\ schemaorg_apache_xmlbeans.*,\ schemasMicrosoftComOfficeExcel.*,\ schemasMicrosoftComOfficeOffice.*,\ schemasMicrosoftComVml.* 这会产生一个包,它导入很多很多东西,例如org.bouncycastle.asn1.x509和org.junit 。 我不打算在我的应用程序中加密或测试 – 所以这两个可能在某种程度上是“可选的”。 我怎么指定这个? 有没有一种收集所有这些依赖关系的好方法? 注意:至少还需要org.apache.commons.codec和com.sun.msv.datatype.xsd.lib ,但它们已经是捆绑包。 使用预先包装的jar子,我尝试使用org.apache.servicemix.bundles.poi 3.9_2。 这也需要dom4j所以我使用了预先包装好的org.apache.servicemix.bundles.dom4j但是至少需要javax.xml.stream 1.0版本,我的JVM / Felix OSGi将其作为“仅”版本0.0.0.1_007_JavaSE 。 我手动修复了这个问题(丑陋),但后来陷入了另一个依赖关系。 什么是好方法?