关于maven下 使用Spring 集成Junit版本问题
maven建立的测试项目,今天在做测试dao接口的时候,在Spring环境中使用Junit,发现@RunWith(SpringJUnit4ClassRunner.class)这句话报错了,网上找些资料看,说可能是maven默认使用的是3.8.1的Junit版本,但实际中我已经改过了pom.xml文件,使用的是4.11版本的Junit
这是依赖配置:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
eclipse打开项目properties->libraries->maven dependencies 里查看,也是4.11版本的没错。
不过当我打开本地仓库查看junit包时,发现有3.8.1和4.11两个版本的包,此时可以删除4.11版本的包,删除3.8.1版本的包时却无法删除,警告文件已在另一个程序中打开!说明,虽然maven依赖中加入的是4.11版本的包,项目实际使用的是3.8.1版本的包,所以导致@RunWith(SpringJUnit4ClassRunner.class)这句话报错,有谁碰到类似情况或者有什么解决方案?help...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
那简单,把占用的进程关了,然后删了本地3的包所在的文件夹,回头重新跑一下项目,看看还会不会生成
使用mvn
exclude
回复
试了,配置4.11的版本,maven会下载3.8.1的和4.11两个版本的,但使用的是3.8.1
回复
如果是这种现象就很有可能别的依赖包有引用junit3.8.1版本,仔细找找. 并确保pom.xml的修改已经生效. 如果在本地库无法删除3.8.1版本包,说明你的程序没有完全停掉,这时就有可能你新改的pom.xml没有生效,所以确保全部停掉后重新编译试试.
回复
http://blog.csdn.net/xyr05288/article/details/51438500
回复
谢谢你!
回复
不客气
是用的maven-surefire-plugin插件吗?
默认junit版本确实是3.8.1,不过也可以声明junit版本号.如下:
所以,junit4.7以上版本声明为"junit47"就行了,否则就是默认的junit3.8.1
参考地址在此:http://maven.apache.org/surefire/maven-surefire-plugin/examples/junit.html
写得很清楚.
可是没有地方引用junit3,而且build path 里面看jar包也只有junit4, QAQ
看哪里依赖的junit3,把他在maven 里面exclude掉