如何解决grails插件依赖项

时间:2013-05-24 08:40:59

标签: grails quartz-scheduler grails-plugin dependency-management shiro

我的Grails应用应该使用两个插件:shiroquartz2

我将两个插件添加到 BuildConfig.groovy

  • 编译“:shiro:1.1.4”
  • 编译“:quartz2:2.1.6.2”

(在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)发生同样的问题

1 个答案:

答案 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。