пытается переопределить зависимость Apache Tika 0.9 от PDFBOX 1.4.0 до PDFBOX 1.6.0 - PullRequest
2 голосов
/ 21 сентября 2011
    <dependency>
                    <groupId>org.apache.tika</groupId>
                    <artifactId>tika-parsers</artifactId>
                    <version>0.9</version>
                </dependency>

Я пытался добавить эту зависимость ниже вместо чуть выше зависимости tika, чтобы переопределить зависимость Tika для PDFBOX 1.6.0, но она не работает ..

<dependency>
                <groupId>org.apache.tika</groupId>
                <artifactId>tika-parsers</artifactId>
                <version>0.9</version>
    <exclusions> 
    <exclusion>
    <groupId>org.apache.pdfbox</groupId>
          <artifactId>pdfbox</artifactId>
          </exclusion>
    </exclusions>
    </dependency> 
    <dependency>
    <groupId>org.apache.pdfbox</groupId>
              <artifactId>pdfbox</artifactId>
              <version>1.6.0</version>
    </dependency>

Tika Parser зависит от PdfBox версии 1.4.0.И я хотел изменить эту зависимость Apache Tika на PdfBox версии 1.6.0.Как я могу сделать это в моем файле Pom.xml.Это мой файл pom.xml.Любые предложения будут оценены.

    <   project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
                <modelVersion>4.0.0</modelVersion>

                <groupId>com.xyz.search</groupId>
                <artifactId>xyzz-crawler4j</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <packaging>jar</packaging>

                <name>qcom-crawler4j</name>
                <url>http://maven.apache.org</url>

                <properties>
                    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                </properties>

                <repositories>
                    <repository>
                        <id>repo-for-dsiutils</id>
                        <url>http://ir.dcs.gla.ac.uk/~bpiwowar/maven/</url>
                    </repository>
            <repository>
                    <id>JBoss</id>
                    <name>jboss-maven2-release-repository</name>
                    <url>https://oss.sonatype.org/content/repositories/JBoss</url>
                  </repository>
                    <repository>
                        <id>oracle</id>
                        <url>http://download.oracle.com/maven</url>
                    </repository>

                    <repository>
                        <id>boilerpipe</id>
                        <url>http://boilerpipe.googlecode.com/svn/repo/</url>
                    </repository>
                </repositories>

                <dependencies>

                    <dependency>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                        <version>4.0.1</version>
                        <!-- 4.1.1 -->
                    </dependency>

//PDFBOX version 1.6.0
                        <dependency>
                      <groupId>org.apache.pdfbox</groupId>
                      <artifactId>pdfbox</artifactId>
                      <version>1.6.0</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpcore</artifactId>
                        <version>4.0.1</version>
                    </dependency>
                    <!-- 4.1 -->

                    <dependency>
                        <groupId>it.unimi.dsi</groupId>
                        <artifactId>fastutil</artifactId>
                        <version>6.2.2</version>
                    </dependency>


                    <dependency>
                        <groupId>com.sleepycat</groupId>
                        <artifactId>je</artifactId>
                        <version>4.0.71</version>
                    </dependency>

                    <!-- Boilerpipe -->
                    <dependency>
                        <groupId>de.l3s.boilerpipe</groupId>
                        <artifactId>boilerpipe</artifactId>
                        <version>1.2.0</version>
                    </dependency>
                    <!-- Tika (for non-HTML extractions) -->
                    <dependency>
                        <groupId>org.apache.tika</groupId>
                        <artifactId>tika-core</artifactId>
                        <version>0.9</version>
                    </dependency>

                <dependency>
               <groupId>xerces</groupId>
               <artifactId>xercesImpl</artifactId>
               <version>2.8.1</version>
            </dependency>

            <dependency>
                    <groupId>nekohtml</groupId>
                    <artifactId>nekohtml</artifactId>
                    <version>0.6.5</version>
                  </dependency>


                    <dependency>
                        <groupId>org.apache.tika</groupId>
                        <artifactId>tika-parsers</artifactId>
                        <version>0.9</version>
                    </dependency>
    **// I was trying to add this below dependency instead of just above dependency of tika to override the dependency of Tika to PDFBOX 1.6.0 But its not working..

     <!--   <dependency>
                    <groupId>org.apache.tika</groupId>
                    <artifactId>tika-parsers</artifactId>
                    <version>0.9</version>
        <exclusions> 
        <exclusion>
        <groupId>org.apache.pdfbox</groupId>
              <artifactId>pdfbox</artifactId>
              </exclusion>
        </exclusions>
        </dependency> 
        <dependency>
        <groupId>org.apache.pdfbox</groupId>
                  <artifactId>pdfbox</artifactId>
                  <version>1.6.0</version>
        </dependency>
    -->**


                </dependencies>
            </project>

1 Ответ

4 голосов
/ 22 сентября 2011

Самый чистый подход, вероятно, заключается в добавлении раздела dependencyManagement, который обновляет версию PDFBox в вашем дереве зависимостей.Например:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.pdfbox</groupId>
      <artifactId>pdfbox</artifactId>
      <version>1.6.0</version>
    </dependency>
  </dependencies>
</dependencyManagement>

Обратите внимание, что многие синтаксические анализаторы Tika тесно связаны с конкретными версиями вышестоящих библиотек синтаксических анализаторов, таких как PDFBox, поэтому вам нужно будет хорошо протестировать систему, если вы переопределите версии зависимостей, подобные этой.

Альтернативой принудительному изменению версии зависимости является использование последней транковой версии Tika, где зависимость PDFBox уже находится в версии 1.6.0.Кроме того, выпуск Tika 0.10, который будет использовать обновленную зависимость, должен выйти уже в начале следующей недели.

...