我有一个问题之间两种不同的杯插件(流口水的0.3和出现故障web),他们似乎都包括一些版本的xml-api-*和这些似乎不能共存。

什么是最好的方式来解决这类问题?

有帮助吗?

解决方案

删除其中一个得罪库是一种方式,但将是一个疼痛的每一次你结账的源码。不幸的是,我不能想到的另一种方式,由于xml-api不是在插件lib dir的出现故障web但作的一部分,下载的出现故障web安装。

通常一个插件lib罐子里是不是添加到类路径,如果它已经存在的应用程序lib dir所以您可以创建一个虚拟的罐子同名停止之一的库正在增加。

看的出现故障web插件来源应当不包括xml-api类路径无论如何(_Events.时髦的线100)-您使用的是最新的版本吗?你确定这不是流口水的插件发生冲突xml-api杯?

有更好的依赖性的决议即将在1.2其插件可能可以使用,以避免这类问题的未来。

其他提示

最好的方法是使用Grails 依赖性解析DSL。。您可以排除这样的违规依赖:

plugin("hibernate") {
compile( 'org.hibernate:hibernate-core:3.3.1.GA') {
    excludes 'ehcache', 'xml-apis', 'commons-logging'
}
compile 'org.hibernate:hibernate-annotations:3.4.0.GA',
        'org.hibernate:hibernate-commons-annotations:3.3.0.ga'
runtime 'javassist:javassist:3.4.GA'    
}

这是自Grails 1.2以来的工作。您的插件很可能是Grails-1.2之前的版本,否则基于常春藤应该照顾你的冲突。依赖解析DSL只不过是编写常春藤xml的常规方式。

我不确定,但要尝试的是进入每个插件的目录:

〜/ .grails / $ {GRAILS_VERSION} /插件/ $ {THE_PLUGIN} / lib中

并删除最低版本的xml-api - *。

如果幸运的话,新版本的库中没有重大变化。

整个grails应用程序似乎可以访问插件的库(否则你不会受到冲突)。

我做了类似的事情,在jasper插件中升级到更新版本的jasper报告库,它对我有用。你的情况可能会有点复杂。

scroll top