我尝试将应用程序从Grails 2.2.4更新到2.3.7,并且我遇到了与iText相关的问题。
执行grails资源 - 依赖项向我显示我有2个罐子用于iText
+--- org.grails:grails-docs:2.3.7
| \--- org.xhtmlrenderer:core-renderer:R8
| \--- org.yaml:snakeyaml:1.8
| \--- org.grails:grails-gdoc-engine:1.0.1
| \--- **com.lowagie:itext:2.0.8**
| \--- commons-lang:commons-lang:2.6
+--- org.grails.plugins:jasper:1.8.0
| \--- **com.lowagie:itext:2.1.7**
| \--- bouncycastle:bcmail-jdk14:138
| \--- bouncycastle:bcprov-jdk14:138
| \--- org.bouncycastle:bctsp-jdk14:1.38
| \--- org.bouncycastle:bcprov-jdk14:1.38
| \--- org.bouncycastle:bcmail-jdk14:1.38
我尝试删除在BuildConfig上添加的itext 2.0.8
grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
excludes "itext"
}
然而,当我刷新依赖关系时,Grails反正添加了itext 2.0.8。
有人可以给我一个解决方案的暗示吗?
最好的问候
答案 0 :(得分:8)
itext 2.0.8是依赖项的依赖项:grails-docs。你可以做的是从继承的全局依赖项中排除grails-docs,然后专门添加它,不包括itext。
grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
excludes "grails-docs"
}
dependencies {
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
// runtime 'mysql:mysql-connector-java:5.1.24'
build('org.grails:grails-docs:2.3.7') {
excludes 'itext'
}
}
}
这将产生
+--- org.grails:grails-docs:2.3.7
| \--- org.xhtmlrenderer:core-renderer:R8
| \--- org.yaml:snakeyaml:1.8
| \--- org.grails:grails-gdoc-engine:1.0.1
| \--- commons-lang:commons-lang:2.6
答案 1 :(得分:1)
无需排除itext版本,而是显式添加依赖版本,如下所示。这将使用以下版本覆盖任何插件itext。将来,使用itext添加新插件也不会引起任何问题。
dependencies {
build "com.lowagie:itext:2.1.0"
}
注意:不要排除任何itext或grails-docs。