Apache Tika 编译错误

问题描述 投票:0回答:3

我正在尝试遵循“看起来”非常简单的“Apache TikaJAXRS”编译说明。我在 Windows 8.1 64 位上运行。 从 Apache Tika 下载页面下载最新的稳定源代码或从 Github 检索最新代码,

使用 Maven 构建源代码,
  1. 运行 Apache Tika JAXRS 服务器。
  2. 好的。我已经完成了第 1 步,但在第 2 步中遇到了困难。显然,这里有一些未编写的先决条件,因此我尝试按如下方式解决它们:
已安装Java SDK 8u25

将 JAVA_HOME 变量设置为
    C:\Program Files\Java\jdk1.8.0_25
  • 将 CLASSPATH 变量设置为
    .
  • 将 JDK BIN 目录添加到 PATH 变量:
    C:\Program Files\Java\jdk1.8.0_25\bin
  • 将 Maven BIN 目录添加到 PATH 变量:
    C:\apache-maven-3.2.5\bin
  • 然后从 tika-1.7 目录(src 下载的 zip 内容)运行 
    mvn install
  • 。编译愉快地进行了几分钟,然后出现下面粘贴的错误输出,此时编译似乎冻结了。

问题

看起来
可能是这个 -

https://issues.apache.org/jira/browse/TIKA-1276

那里有一些关于重新创建捆绑包并修改其中的文件以解决问题的讨论,但坦率地说,我发现奇怪的是,我必须跳过这样的障碍才能获得 Tika 的工作副本 - 没有二进制发行版提供! 我需要做什么才能解决这个编译问题? ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.apache.tika.bundle.BundleIT [main] INFO org.ops4j.pax.exam.spi.DefaultExamSystem - Pax Exam System (Version: 2.2.0) created. Jan 19, 2015 11:48:40 AM org.ops4j.pax.url.mvn.internal.AetherBasedResolver resolve INFO: Resolved (org.junit:com.springsource.org.junit:jar:4.4.0) as C:\Users\Jason\.m2\repository\org\junit\com.springsource.org.junit\4.4.0\com.springsource.org.junit-4.4.0.jar ERROR: Bundle org.ops4j.pax.exam.rbc [1] Error starting link:classpath:META-INF/links/org.ops4j.pax.exam.rbc.link (org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.exam.rbc [1].) java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory at org.ops4j.pax.exam.rbc.internal.Activator.<clinit>(Activator.java:47) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at java.lang.Class.newInstance(Class.java:438) at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4169) at org.apache.felix.framework.Felix.activateBundle(Felix.java:1972) at org.apache.felix.framework.Felix.startBundle(Felix.java:1895) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory not found by org.ops4j.pax.exam.rbc [1] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 12 more ERROR: Bundle org.ops4j.pax.exam.extender.service [2] Error starting link:classpath:META-INF/links/org.ops4j.pax.extender.service.link (org.osgi.framework.BundleException: Unresolved constraint in bundle org.ops4j.pax.exam.extender.service [2]: Unable to resolve 2.0: missing requirement [2.0] osgi.wiring.package; (&(osgi.wiring.package=org.slf4j)(version>=1.6.0)(!(version>=2.0.0))) [caused by: Unable to resolve 4.0: missing requirement [4.0] osgi.wiring.package; (osgi.wiring.package=javax.xml.parsers)]) org.osgi.framework.BundleException: Unresolved constraint in bundle org.ops4j.pax.exam.extender.service [2]: Unable to resolve 2.0: missing requirement [2.0] osgi.wiring.package; (&(osgi.wiring.package=org.slf4j)(version>=1.6.0)(!(version>=2.0.0))) [caused by: Unable to resolve 4.0: missing requirement [4.0] osgi.wiring.package; (osgi.wiring.package=javax.xml.parsers)] at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3818) at org.apache.felix.framework.Felix.startBundle(Felix.java:1868) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295) at java.lang.Thread.run(Thread.java:745) ERROR: Bundle org.ops4j.pax.logging.pax-logging-api [4] Error starting link:classpath:META-INF/links/org.ops4j.pax.logging.api.link (org.osgi.framework.BundleException: Unresolved constraint in bundle org.ops4j.pax.logging.pax-logging-api [4]: Unable to resolve 4.0: missing requirement [4.0] osgi.wiring.package; (osgi.wiring.package=javax.xml.parsers)) org.osgi.framework.BundleException: Unresolved constraint in bundle org.ops4j.pax.logging.pax-logging-api [4]: Unable to resolve 4.0: missing requirement [4.0] osgi.wiring.package; (osgi.wiring.package=javax.xml.parsers) at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3818) at org.apache.felix.framework.Felix.startBundle(Felix.java:1868) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295) at java.lang.Thread.run(Thread.java:745) ERROR: Bundle org.apache.tika.core [6] Error starting file:/C:/Users/Jason/Desktop/FullText/Tika/tika-1.7/tika-bundle/target/test-bundles/tika-core.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle org.apache.tika.core [6]: Unable to resolve 6.0: missing requirement [6.0] osgi.wiring.package; (osgi.wiring.package=javax.crypto)) org.osgi.framework.BundleException: Unresolved constraint in bundle org.apache.tika.core [6]: Unable to resolve 6.0: missing requirement [6.0] osgi.wiring.package; (osgi.wiring.package=javax.crypto) at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3818) at org.apache.felix.framework.Felix.startBundle(Felix.java:1868) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295) at java.lang.Thread.run(Thread.java:745) ERROR: Bundle org.apache.tika.bundle [7] Error starting file:/C:/Users/Jason/Desktop/FullText/Tika/tika-1.7/tika-bundle/target/test-bundles/tika-bundle.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle org.apache.tika.bundle [7]: Unable to resolve 7.0: missing requirement [7.0] osgi.wiring.package; (osgi.wiring.package=javax.crypto)) org.osgi.framework.BundleException: Unresolved constraint in bundle org.apache.tika.bundle [7]: Unable to resolve 7.0: missing requirement [7.0] osgi.wiring.package; (osgi.wiring.package=javax.crypto) at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3818) at org.apache.felix.framework.Felix.startBundle(Felix.java:1868) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295) at java.lang.Thread.run(Thread.java:745)

将评论提升为答案...
maven javac apache-tika
3个回答
6
投票

如果您访问

Apache Tika 下载页面

,您将看到一个下载最新稳定 Tika Server 可运行 jar 的链接。点击该链接,选择您最喜欢的镜像,下载,验证校验和并运行。简单!

如果您确实需要从源代码构建 Tika 服务器(例如,如果您要对其进行更改),您可以通过运行 mvn install -DskipTests 来跳过单元测试,这将在不进行测试的情况下进行构建,或者您可以在源签出的根目录中编辑

pom.xml

并注释掉

<module>tika-bundle</module>
行,以从构建中排除整个捆绑包部分(测试和所有)。如果您只想使用 Tika 服务器,那么您不需要 OSGi 捆绑包,因此可以安全地跳过它
    
当您尝试使用 JDK 8 构建 tika 时,会出现此错误。有一个 

pull request

3
投票

我在安装 TIKA 时也遇到问题。


0
投票

我正在使用 mvn 395 和 java 21

我想知道有没有

© www.soinside.com 2019 - 2024. All rights reserved.