我正在使用Apache Tika 1.4从我的文档中提取内容。但它也附带了org.bouncycastle。*类,我使用的另一个版本的bouncycastle与Tika软件包冲突。
如果Tika使用bouncycastle(bcprov)jar,我可以使用Maven中的排除标记排除它,但是TikaApp已经将org.bouncycastle类复制到其中,因此,我无法排除它们。
有一些方法可以删除这个包,而无需重新编译或分支Apache Tika,并设置为使用另一个JAR到这个指定的包或类似的东西?
谢谢
答案 0 :(得分:1)
你的问题是你完全使用了Tika的错误包装!
tika-app
jar是一个独立的,可运行的jar,包含所有Tika代码+让它运行所需的所有依赖项。它旨在从命令行中独立使用,以允许非Java用户调用Tika,并允许轻松测试。
如果您正在编写自己的Java应用程序(听起来就像这样),那么您至少需要依赖tika-core
工件。它包含所有接口,mime检测,服务加载器等。您几乎肯定也希望依赖tika-parsers
,它提供了所有代码来实际解析文件格式,同时提供他们所需的依赖。这为您提供了您想要的完全控制。
最后,对于那些喜欢OSGi提供的控件和类加载的人来说,还有一个可用的OSGi包,它位于tika-bundle
工件中。还有一个CXF驱动的JAX-RS版本,它通过RESTful接口提供Tika的服务,该服务包含在tika-server
工件中。