Shiro Plugin конфликтует с кварцевым каркасом в Grails - PullRequest
1 голос
/ 29 сентября 2010

Я работал над Quartz Framework в моем проекте Grails с библиотекой lib под названием quartz-all-1.7.3.

Теперь мне нужно установить плагин 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-кварц-1.0.0-инкубационный. Jar. Итак, теперь внутри его файла pom.xml я увидел следующий строчный код:

<dependency>
     <groupId>quartz</groupId>
     <artifactId>quartz</artifactId>
</dependency>

В соответствии с нашей строкой в ​​pom.xml, нет тега версии с зависимостью от кварца, что означает, что всякий раз, когда shiro устанавливается в моем проекте, одновременно он извлекает последнюю библиотеку кварца, т.е.

И внутри этого quartz 1.8.3 метод updateSchedulerState класса CustomJDBCDelegate был изменен с версии quarts 1.7.3.

Так что теперь проблема в том, что я не могу изменить quartz-all-1.7.3 в моем существующем проекте, и я тоже хотел использовать плагин Shiro в моем проекте.

Так что должно быть какое-то разрешение, чтобы Широ получал версию quartz-1.7.3, а не последнюю версию, использующую maven.

Любая помощь будет высоко ценится ...

Спасибо ...

1 Ответ

2 голосов
/ 02 октября 2010

Может, я ошибаюсь, ты имеешь в виду что-то подобное?

    <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
...