gpt4 book ai didi

maven - 使用哪个版本的 iText 以便 JasperReports 和 Grails Rendering 插件都能工作

转载 作者:行者123 更新时间:2023-12-03 02:46:18 24 4
gpt4 key购买 nike

我想同时使用 Jasper Reports ( Vanilla ,从来没有让 Grails Jasper plugin 工作 - 见 this)和 Grails Rendering plugin (一个更适合某些报告,另一个更适合其他报告)。

如果我包含 'com.lowagie:itext:2.1.5' 或 'com.lowagie:itext:4.2.1' 那么我在运行渲染插件的 PDF 报告时缺少 com.lowagie.text.pdf.BaseFont.getCharBBox。

如果我包含 'com.lowagie:itext:2.0.8' 那么我在运行 Jasper 的 PDF 报告时缺少 com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending。

两者都因 java.lang.NoSuchMethodError-s 而失败。

我还没有尝试过最新的 iText 版本,但它们有不同的包名称和更严格的许可,所以我认为它们不合适。

我的 BuildConfig.groovy 看起来像这样(前 3 个依赖项之一被取消注释):

dependencies {
// runtime 'com.lowagie:itext:4.2.1' // missing.BaseFont.getCharBBox
// runtime 'com.lowagie:itext:2.0.8' // missing PdfWriter.setRgbTransparencyBlending
// runtime 'com.lowagie:itext:2.1.5' // missing.BaseFont.getCharBBox
compile 'net.sf.jasperreports:jasperreports:5.2.0' // needed by jasper
runtime 'org.springframework:spring-test:3.2.4.RELEASE' // needed by rendering plugin
runtime 'commons-collections:commons-collections:3.2.1' // needed for jasper
}

plugins {
// ...
compile ":rendering:0.4.4"
// compile ":jasper:1.6.1" // couldn't get this to generate anything, but not sure it would help any
// ...
}

是否有任何我可以尝试的“旧”版本的 iText(MPL 许可)可能有效?

有什么方法可以要求 Maven/Gradle 制作它,以便我可以要求其中一个库/插件使用一个版本的 iText,另一个使用另一个版本?

最佳答案

解决方案是在包含渲染插件时使用“excludes”子句:

compile(":rendering:0.4.4") {
excludes(
[group:'org.xhtmlrenderer'],
[group:'com.lowagie']
)
}

这并没有真正解决所有问题,因为 Grails 本身包含了一个旧版本的 org.xhtmlrenderer Flying Saucer core-renderer-R8.jar(取决于 grails-docs),但它确实回答了这个关于如何让 iText 依赖工作(除了排除我简单地包含 'com.lowagie:itext:2.1.7' 并且它适用于 Jasper 和渲染插件。

关于maven - 使用哪个版本的 iText 以便 JasperReports 和 Grails Rendering 插件都能工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18579401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com