3

我的 grails 应用程序应该使用两个插件:shiroquartz2

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

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

(在那个 ide 下载它们之后)

依赖问题:shiro 依赖于shiro-quartz:1.2.0shiro-quartz来自org.opensymphony.quartz 1.6.1

我想知道为什么quartz2 会寻找quartz-1.6.1.jar的方法实现。Quartz2 找不到实现,这就是无法构建项目的原因。我认为quartz2应该在“普通”石英库中搜索方法实现,比如quartz:1.0-RC7,但他没有。

那么,我该如何解决 shiro 和quartz2 插件冲突呢?

我听说过依赖排除,但我不确定这个建议。

PS与石英(不是石英2)发生了同样的问题

4

1 回答 1

9

您可以运行dependency-report以检查插件试图添加到您的项目中的依赖项。问题似乎是 shiro-quartz 依赖于石英 1.x 而石英插件使用石英 2.x。

通常你可以这样做:

compile (":shiro:1.1.4") {
  excludes('org.opensymphony.quartz:quartz')
}

但是有一个错误,并且不排除这种传递依赖。有一张开放的票可以调整这一点。

好消息是有一个解决方法:

compile (":shiro:1.1.4") {
  excludes([name: 'quartz', group: 'org.opensymphony.quartz'])
}

这样,Grails 将只使用 Quartz 2.x。

于 2013-05-24T14:21:10.243 回答