springboot工程遵循maven规范,对依赖的顺序为:短路优先、位置靠前优先。
如:
A->B->C-X
A->D->X
假设上面的B引入了log4j包的版本是1.0,D引入了log4j包的版本是2.0,那么项目X引用的log4j包将会是2.0。
在pom文件中依赖的顺序靠前,则引用的将会是前面的。
问题1:在springboot中用pageHelper的时候突然遇到个问题,启动项目后出现这个情况:com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration
解决:用的版本为1.2.5,将pageHelper升级为1.4.1即可。
问题2:springboot中用shiro时报错:redis.clients.jedis.ScanResult.getCursor()Ljava/lang/String;
解决:
shiro中redis的版本与jedis的版本冲突导致
<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>3.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
jedis版本需为2.9.0,若升版本则报错
冲突可通过如下解决
<!--<exclusions>
<exclusion>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</exclusion>
</exclusions>-->
或切换顺序尝试
如下版本测试ok,又没问题了
<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.7.0</version>
</dependency>
去除jedis依赖,使用shiro中的redis即可。
本文介绍了在SpringBoot项目中遇到PageHelper和Shiro依赖冲突的解决方案。当PageHelper版本为1.2.5时,启动项目出现错误,升级PageHelper到1.4.1问题解决。另外,由于shiro-redis和jedis版本不匹配导致的报错,通过调整shiro-redis和shiro-spring的版本以及jedis版本至2.9.0,或者排除jedis依赖并使用shiro内部的redis支持,问题得到解决。关键在于理解Maven的依赖解析规则,合理管理项目中的依赖版本和顺序。
1152

被折叠的 条评论
为什么被折叠?



