Maven無法下載2.1.7.js7版本的itext依賴


問題與分析

某日忽然發現用Maven編譯項目報錯如下:

Failed to collect dependencies at net.sf.jasperreports:jasperreports:jar:6.10.0
-> com.lowagie:itext:jar:2.1.7.js7: Failed to read artifact descriptor for com.lowagie:itext:jar:2.1.7.js7: 
Could not transfer artifact com.lowagie:itext:pom:2.1.7.js7

一開始以為是網絡不好連接不上遠程庫,或者遠程庫沒有該jar包,后來發現在Maven中央倉庫里也沒找到2.1.7.js7版本的itext依賴。在Stack Overflow上查詢后發現有不少人遇到同樣的問題,都是由於使用了某個版本的jasperreports,最終導致了該錯誤。

由於在jasperreports的pom文件里指定了2.1.7.js7版本的itext依賴,而目前的Maven中央倉庫或其他鏡像倉庫里是不存在這種帶有js7等后綴版本。該版本是jasperreports為了修復一些bug而打上了補丁的版本,但是並沒有release到中央庫里,不過這些bug在更高版本里也被修復了,可以使用更高版本的itext來避免這些bug。

解決方法

排除jasperreports中的itext依賴並自行指定版本,pom如下:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    <version>6.10.0</version>
    <exclusions>
        <exclusion>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
  <groupId>com.lowagie</groupId>
  <artifactId>itext</artifactId>
  <version>2.1.7</version>
</dependency>

這里的itext版本根據自身實際情況指定,目前itext已停止維護,並從4.2.2之后的版本開始從com.lowagie.itext遷移到com.itextpdf.itextpdf,有需要的話可以使用更高版本的itextpdf依賴,pom如下:

<dependency>
    <groupId>jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    <version>6.10.0</version> <!--(or higher)-->
    <exclusions>
        <exclusion>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13</version> <!--(or higher)-->
</dependency>

參考鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM