java - iText 版本 4.2.1 在 Maven 中央存储库中重定向

标签 java maven itext

我们在我们的一个项目中使用 iText 来生成 PDF 报告,正是 4.2.1 版本,因为它是最后一个免费版本。

<dependency>
   <groupId>com.lowagie</groupId>
   <artifactId>itext</artifactId>
   <version>4.2.1</version>
</dependency>

今天早上当我在一台新机器上克隆存储库时,我遇到了很多编译器错误,因为 maven 重定向到版本 5.5.6 并且导入失败。在我们的研究中,我们发现 maven central 中的 pom 文件上周发生了变化。从现在开始,似乎不可能像我们之前那样添加jar依赖了。

谁能告诉我,是否还有办法通过 maven 将 iText 集成到 4.2.1 版中?

最佳答案

记录在案here ,发布 iText 版本 4.x.y 的人没有关注 the rules as explained by Apache :

I have a patched version of the foo project developed at foo.com, what groupId should I use?

When you patch / modify a third party project, that patched version becomes your project and therefore should be distributed under a groupId you control as any project you would have developed, never under com.foo. See above considerations about groupId.

他们使用 groupId 发布了 iText 的非官方版本,这让人们相信他们使用的是 iText 的原始版本,但事实并非如此。这个错误引起了很多困惑和沮丧。

为避免混淆,iText Group 收回了 groupId,这样任何第三方都无法将侵犯第三方权利的软件甚至恶意软件引入您的代码库(这是您在使用时承担的风险允许 Maven 自动升级)。

您关于 iText 4.2.1 是最后一个免费版本的说法是不正确的。 iText 5 之前的 iText 版本存在一些严重的问题,但这是另一个讨论,也是 JavaOne 2015 session 上题为 IANAL: What Developers Should Know About IP and Legal 的主题。 .

无论如何,最简单的解决方案是将依赖项更改为:

<dependency>
  <groupId>com.lowagie</groupId>
  <artifactId>itext</artifactId>
  <version>[1.02b,2.1.7]</version>
  <scope>compile</scope>
</dependency>

参见 this answer回答Dependency error in jasper-reports from itext了解更多背景信息。

关于java - iText 版本 4.2.1 在 Maven 中央存储库中重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31386309/

相关文章:

java - "Class Cast Exception"尝试将图像帧设置为背景时

java apache poi shifting Rows 遇到运行时异常

java - 无法使用 spark (java) 从 Cassandra 获取数据

android - 如何更改表格单列的宽度?

button - itext PushbuttonField 行为

java - 添加依赖 Play scala.build 文件时出错

Java从Android JavascriptInterface中的另一个类获取变量

spring - 离线在服务器上部署Maven Spring Boot项目

java - Maven Clojure 插件未运行测试

java - 下载 PDF 文件时从 itext 获取 Java 堆空间错误