我一直在我的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已从版本quarts 1.7.3
更改。
所以现在问题是我无法在现有项目中更改quartz-all-1.7.3
,并希望在我的项目中也使用Shiro插件。
所以应该有一些解决方案,以便shiro应该使用quartz-1.7.3
版本,而不是使用maven的最新版本。
任何帮助都将受到高度赞赏......
...谢谢
答案 0 :(得分: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