我的Grails应用应该使用两个插件:shiro和quartz2。
我将两个插件添加到 BuildConfig.groovy :
(在ide之后下载了它们)
依赖关系中的问题:shiro取决于来自 org.opensymphony.quartz 1.6.1的 shiro-quartz:1.2.0 和 shiro-quartz
我想知道为什么但是quartz2正在寻找 quartz-1.6.1.jar 的方法实现。 Quartz2无法找到实现,这就是无法构建项目的原因。 我认为quartz2应该在“普通”石英lib中搜索方法实现,比如 quartz:1.0-RC7 ,但他没有。
那么,我怎样才能解决shiro和quartz2插件的冲突?
我听说过依赖性排除,但我不确定这种说法。
P.S。与石英(不是quartz2)发生同样的问题
答案 0 :(得分:9)
您可以运行dependency-report
来检查插件尝试添加到项目中的依赖项。问题似乎是shiro-quartz依赖于quartz 1.x而石英插件使用的是quartz 2.x。
通常你可以这样做:
compile (":shiro:1.1.4") {
excludes('org.opensymphony.quartz:quartz')
}
但是有一个错误,并不排除这种传递依赖。有一个open ticket可以调整它。
好处是有一个解决方法:
compile (":shiro:1.1.4") {
excludes([name: 'quartz', group: 'org.opensymphony.quartz'])
}
有了这个,Grails将仅使用Quartz 2.x。