maven - Shiro插件与Grails中的Quartz框架冲突

标签 maven grails quartz-scheduler grails-plugin shiro

我一直在我的grails项目中使用名为quartz-all-1.7.3的lib来工作Quartz框架。

现在,我需要将shiro插件安装到我的项目中。因此,每当我将shiro插件安装到我的项目中时,它都会成功安装。

但是每当我再次运行项目时,都会出现如下编译错误:

  [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
  [groovyc] Compile error during compilation with javac.
  [groovyc] ....scheduler\quartz\framework\CustomJDBCDelegate.java:46: com.securonix.application.scheduler.quartz.framework.CustomJDBCDelegate is not abstract and does not override abstract method updateSchedulerState(java.sql.Connection,java.lang.String,long,java.lang.String) in org.quartz.impl.jdbcjobstore.DriverDelegate
  [groovyc] public class CustomJDBCDelegate implements DriverDelegate, StdJDBCConstants {
  [groovyc]        ^

因此,在仔细查看shiro插件后,我发现它与插件有一定的依赖关系。在那个依赖项中是shiro-quartz-1.0.0-incubating.jar。因此,现在在pom.xml文件中,我看到以下行代码:
<dependency>
     <groupId>quartz</groupId>
     <artifactId>quartz</artifactId>
</dependency>

根据pom.xml中的代码行,没有 quartz 依赖版本的标签,这意味着每当将shiro安装到我的项目中时,它就会同时使用maven提取最新的 quartz 库(即1.8.3)。

并且在该quartz 1.8.3中,类CustomJDBCDelegate的updateSchedulerState方法已从quarts 1.7.3版本更改。

所以现在的问题是我无法在现有项目中更改quartz-all-1.7.3,并且也想在我的项目中使用Shiro插件。

因此,应该有一些解决方案,以便Shiro可以获取quartz-1.7.3版本,而不是使用maven的最新版本。

任何帮助将不胜感激...

谢谢...

最佳答案

也许我弄错了,您的意思是这样的吗?:

    <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-quartz</artifactId>
        <version>1.0.0-incubating</version>
        <exclusions>
            <exclusion>
                <groupId>quartz</groupId>
                <artifactId>quartz</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>1.7.3</version>
    </dependency>

然后$ mvn dependency:tree
[...]
[INFO] +- org.apache.shiro:shiro-quartz:jar:1.0.0-incubating:compile
[INFO] |  \- org.apache.shiro:shiro-core:jar:1.0.0-incubating:compile
[INFO] |     +- org.slf4j:slf4j-api:jar:1.5.6:compile
[INFO] |     \- commons-beanutils:commons-beanutils:jar:1.7.0:compile
[INFO] \- org.quartz-scheduler:quartz:jar:1.7.3:compile
[INFO]    \- commons-logging:commons-logging:jar:1.1:compile
[INFO]       +- log4j:log4j:jar:1.2.12:compile
[INFO]       +- logkit:logkit:jar:1.0.1:compile
[INFO]       \- avalon-framework:avalon-framework:jar:4.1.3:compile

关于maven - Shiro插件与Grails中的Quartz框架冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3821339/

相关文章:

java - 目标 org.springframework.boot :spring-boot-maven-plugin:1. 的执行默认值 2.3.RELEASE:repackage failed: Source must reference an existing file

java - 管理 Web 应用程序之间的依赖关系

总重量。马文。在项目源或资源中找不到 GWT 模块 <module_name>

javascript - 正则表达式用 Grails 注释替换 JavaScript 注释

java - Quartz调度程序找不到插件shutdownhook

java - maven插件组件注入(inject)null

grails - 有没有办法用 mongodb 控制 gorm 中的加载关系?

java - quartz 调度程序 : Maintain processed files list in the event job metadata

Java 日历 - 每两周一次的特殊日子

grails - 从主应用程序向grails插件域类添加行为(关系)?