2010-09-29 32 views
1

J'ai travaillé cadre Quartz dans mon projet de grails avec lib appelé quartz-all-1.7.3.Shiro Plugin en conflit avec le cadre de Quartz dans Grails

Maintenant, j'ai besoin d'installer le plugin shiro dans mon projet. Donc, chaque fois que j'installe plugin Shiro à mon projet ça devient installé avec succès ..

Mais à chaque fois que je courais mon projet encore une fois, il est de donner erreur de compilation comme suit:

[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]  ^

Ainsi, après long regard sur Shiro plugin J'ai trouvé qu'il a des dépendances avec les plugins. Dans celui de la dépendance est shiro-quartz-1.0.0-incubating.jar. Donc, maintenant à l'intérieur est le fichier pom.xml J'ai vu suivant le code de ligne:

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

Conformément à notre ligne pom.xml, il n'y a pas de balise de version avec la dépendance à quartz, cela signifie que chaque fois que Shiro s'installé dans mon projet, en même temps, il extrait la dernière bibliothèque de quartz, c'est-à-dire 1.8.3 avec maven.

Et à l'intérieur de cette quartz 1.8.3 la méthode updateSchedulerState de la classe CustomJDBCDelegate a été modifiée à partir de la version quarts 1.7.3.

Donc maintenant le problème est que je ne peux pas changer quartz-all-1.7.3 dans mon projet existant, et je voulais utiliser Shiro plugin aussi dans mon projet.

Donc il devrait y avoir une certaine résolution afin que shiro devrait obtenir la version quartz-1.7.3 plutôt que la dernière en utilisant maven.

Toute aide serait très apprécié ...

Merci ...

Répondre

2

Peut-être que je reçois ce mal, voulez-vous dire quelque chose comme ça ?:

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

puis $ 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