如何配置Tika的pom.xml以停止获取所有许可证依赖性警告?

时间:2018-02-25 04:16:01

标签: java maven pdfbox apache-tika

当我尝试使用Tika时,我收到了所有这些警告:

  

2018年2月24日下午9:24:35   org.apache.tika.config.InitializableProblemHandler $ 3   handleInitializableProblem警告:未加载JBIG2ImageReader。 JBIG2   文件将被忽略请参阅   https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io   可选的依赖项。 TIFFImageWriter未加载。 tiff文件不会   被处理见   https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io   可选的依赖项。 J2KImageReader未加载。 JPEG2000文件会   不被处理。看到   https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io   可选的依赖项。

     

2018年2月24日下午9:24:35   org.apache.tika.config.InitializableProblemHandler $ 3   handleInitializableProblem警告:org.xerial的sqlite-jdbc不是   加载。请在类路径中提供jar来解析sqlite   文件。有关正确的版本,请参阅tika-parsers / pom.xml。

我尝试添加它(在Tika pom.xml中):

            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>1.57</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcmail-jdk15on</artifactId>
                <version>1.57</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk15on</artifactId>
                <version>1.57</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>

            <dependency>
                <groupId>com.levigo.jbig2</groupId>
                <artifactId>levigo-jbig2-imageio</artifactId>
                <version>2.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.github.jai-imageio</groupId>
                <artifactId>jai-imageio-core</artifactId>
                <version>1.3.1</version>
                <scope>test</scope>
            </dependency>    
            <dependency>
                <groupId>com.github.jai-imageio</groupId>
                <artifactId>jai-imageio-jpeg2000</artifactId>
                <version>1.3.0</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                    <groupId>org.xerial</groupId>
                    <artifactId>sqlite-jdbc</artifactId>
                    <version>3.20.1</version>
            </dependency>

但我仍然得到同样的警告。

如何解决此问题?

更新1

我的依赖项已添加到此处:https://github.com/apache/tika/blob/1.17/pom.xml#L164-L170

此外,我确实尝试没有设置测试。它没有做任何事情。

我添加的依赖项似乎是针对PDFBox的Tika依赖。

4 个答案:

答案 0 :(得分:2)

我添加了以下依赖项,但没有其他警告

    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>1.18</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-parsers</artifactId>
        <version>1.18</version>
    </dependency>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>jbig2-imageio</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.github.jai-imageio</groupId>
        <artifactId>jai-imageio-jpeg2000</artifactId>
        <version>1.3.0</version>
    </dependency>

答案 1 :(得分:1)

在Clojure中,我用以下方法修复了它:

(System/setProperty "tika.config" "tika-config.xml")

在我的config.clj文件中。 xml就是:

<?xml version="1.0" encoding="UTF-8"?>
<properties>
   <service-loader initializableProblemHandler="ignore"/>
</properties>

xml文件必须位于“ resources”目录中,并且该目录必须位于您的路径中。

答案 2 :(得分:0)

很难确切地看到发生了什么,因为你没有包含你的pom.xml的整个<scope>test</scope>部分,但我怀疑这是由于可选的maven依赖。根据{{​​3}},您需要在pom中声明可选的依赖项,否则它们将不会被加载。

此外,您的所有imageio依赖项都具有<meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <div class="container"> <div class="dropdown"> <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown Example <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="#">orange</a></li> <li><a href="#">bnana</a></li> <li><a href="#">lemon</a></li> <li><a href="#">apple</a></li> </ul> </div> </div>,使它们仅在单元测试期间可用。

答案 3 :(得分:0)

现在已将其记录在错误日志中:

  

2019年2月19日下午3:18:44 org.apache.tika.config.InitializableProblemHandler $ 3 handleInitializableProblem   警告:J2KImageReader未加载。 JPEG2000文件将不会被处理。   参见https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io   以获得可选的依赖项。

但是,我更希望拥有一个Tika版本(例如,带有分类器),当我仅想解析文本时可以选择不包含OCR /图像处理的版本,或者可以选择关闭错误记录(仅实际尝试加载不受支持的格式时记录错误。