2011-09-21 42 views
2
<dependency> 
        <groupId>org.apache.tika</groupId> 
        <artifactId>tika-parsers</artifactId> 
        <version>0.9</version> 
       </dependency> 

我試圖添加此下方的依賴,而不是僅僅上述蒂卡的依賴性覆蓋Tika只有PDFBOX依賴1.6.0但是它不工作..試圖重寫的Apache提卡0.9的依賴性和PDFBOX 1.4.0至1.6.0 PDFBOX

<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> 

提卡分析器對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> 

回答

4

最乾淨的方法可能是添加一個dependencymanagement部分,用於升級依賴關係樹中的PDFBox版本。例如:

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

注意,許多提卡解析器緊縛像PDFBox的上游解析器庫的特定版本,所以你需要對系統進行測試以及如果重寫依賴的版本是這樣的。

強制依賴版本更改的替代方法是使用PDFBox依賴項已在版本1.6.0處的Tika的最新中繼版本。此外,將使用更新的依賴關係的Tika 0.10版本將在下週初發布。