从昨天开始,由于iText jar,我在使用maven进行编译时遇到了问题.我的项目依赖于jasperreports-2.0.1,它依赖于itext-1.02b或更高版本.
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>[1.02b,)</version>
<scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这是maven中的日志错误:
Failed to collect dependencies for [jasperreports:jasperreports:jar:2.0.1 (compile)]: Failed to read artifact descriptor for com.lowagie:itext:jar:4.2.2: Could not transfer artifact com.itextpdf:itextpdf:pom:4.2.2 from/to jaspersoft (http://www.jasperforge.org/maven2): Access denied to http://www.jasperforge.org/maven2/com/itextpdf/itextpdf/4.2.2/itextpdf-4.2.2.pom. Error code 403, Forbidden -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
我在这里看到Amedee Van Gasse发表的评论,该评论说明了一个没有jar的4.2.2版本.
为什么1.02b版本附加到4.2.2?
编辑:Jasper-reports使用开放版本范围:
[1.02b)
这个范围说maven采取图书馆最新版本.
随着iText 的更新添加新版Pom没有jar并编辑maven-central的maven-metadata到no-jar版本根据最新的com.lowagie库将编译崩溃到所有jar.
在本地更新您的maven-metadata-central.xml(以及其他元数据,如果您的公司拥有它自己的nexus.public)从... m2\repository\com\lowagie\itext到那个工作.暂时解决方案直到iText更新元数据或所有依赖于它的最新版本公司更新它的pomcom
<metadata modelVersion="1.1.0">
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<versioning>
<latest>4.2.1</latest>
<release>4.2.1</release>
<versions>
<version>0.99</version>
<version>1.1.4</version>
<version>1.02b</version>
<version>1.2.3</version>
<version>1.3</version>
<version>1.3.1</version>
<version>1.4</version>
<version>1.4.8</version>
<version>2.0.1</version>
<version>2.0.6</version>
<version>2.0.7</version>
<version>2.0.8</version>
<version>2.1.0</version>
<version>2.1.2</version>
<version>2.1.3</version> …Run Code Online (Sandbox Code Playgroud)