【项目打包,依赖包打不进去项目war包中:引起Cannot load JDBC driver class ‘com.mysql.jdbc.Driver】

问题:Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

项目打包,对应的依赖打不进项目包中

今天,新到手一个公司项目,idea启动和打包用tomcat启动都报错。

nested exception is java.lang.RuntimeException: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

分析问题

从打包的项目中看,mysql-connector-java包,没有打进到项目的lib中。

  1. 查看pom.xml文件
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>

看起来没问题,尝试添加上对应的包版本,也还是不行。
2. 一顿操作,突然发现,maven目录下的依赖,mysql-connector-java包,后边有个(test)。如下图:带test只有测试能用到感觉就是这个狗屎东西的原因。
3. 网上查理一下:
感谢“shyrainxy”写的:关于dependency的scope用法的博客
dependency的scope有这么几种:

  • test,在测试的时候有效,在编译和打包的时候是不生效的
  • provide,测试和编译的时候有效,打包的时候不生效
  • compile,默认,编译和打包的时候都有效

解决问题

  1. 把pom.xml对应的jar包添加scope范围即可。
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
			<scope>compile</scope>
		</dependency>
  1. 更改后maven目录下的依赖,mysql-connector-java包,后边(test)消失了。
    不带test的数据库驱动包重启项目,OK了。

待解决疑问点

“shyrainxy”写的:关于dependency的scope用法的博客
描述说:compile,默认,编译和打包的时候都有效。也就是说,不写scope的话,默认是compile。但我这个包,默认是test,后续知道后,再补充这里。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值