1

我一直在我的 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 中的行,没有带有石英依赖项的版本标签,这意味着每当我的项目中安装 shiro 时,它同时使用 maven 提取最新的石英库,即 1.8.3。

而在其中quartz 1.8.3,CustomJDBCDelegate 类的 updateSchedulerState 方法已从 version 更改quarts 1.7.3

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

所以应该有一些解决方案,以便 shiro 应该获得quartz-1.7.3版本而不是使用 maven 的最新版本。

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

谢谢...

4

1 回答 1

2

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

    <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
于 2010-10-02T15:39:05.460 回答