覆盖Grails内置库?

时间:2015-05-19 02:57:33

标签: grails dependency-management

Grails“rendering”插件使用org.xhtmlrenderer。 Grails本身与org.xhtmlrenderer一起打包:core-renderer:R8,显然来自依赖报告,使用的是grails-docs。

此版本的xhtmlrender中存在一个与twitter bootstrap冲突的错误,该错误仅在github存储库中修复。我已经构建了这个新版本,并通过maven成功安装了它,但是对于我的生活,我无法使用“渲染”插件来使用它。我甚至试图构建我自己的渲染插件版本,但这不起作用,并且根据依赖性报告“渲染”甚至不依赖于org.xhtmlrenderer:core-renderer:R8。

在BuildConfig.groovy中,我尝试过(在许多其他事情中):

inherits("global") {
        // specify dependency exclusions here; for example, uncomment this to disable ehcache:
        // excludes 'ehcache'
        excludes 'core-renderer-M8', 'org.xhtmlrenderer', 'core-renderer'
    }

compile 'org.xhtmlrenderer:flying-saucer-core:9.0.1-custom' 
runtime 'org.xhtmlrenderer:flying-saucer-core:9.0.1-custom'

无济于事。

如何使用org.xhtmlrenderer的自定义构建“渲染”?是否构建本地版本的“呈现”插件并将我在项目BuildConfig.groovy中尝试的排除和依赖项信息添加到插件BuildConfig.groovy?

1 个答案:

答案 0 :(得分:5)

你需要做的是从继承的全局依赖项中排除grails-docs然后专门添加它除了xhtmlrenderer(虽然它看起来只是包名称,你需要排除飞碟核心) 。这将允许您指定自己的库版本。

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 'flying-saucer-core'
        }
    }
}