问题描述
SpringBoot 项目编译application.yml配置文件的时候,引入spring.datasource.driverClassName: com.mysql.jdbc.Driver标红
问题解决
- 检查是否pom.xml中是否导入"mysql-connector-java.jar"包
- 修改jar包作用范围scope为compile
- 右击pom.xml--->Maven--->Reimport
知其然知其所以然
- 使用jdbc必须导入mysql-connector-java.jar
- scope为作用范围
scope 可选值包括:compile、test、provided、runtime、system:
compile:默认值,适用于所有阶段(开发、测试、部署、运行),本jar会一直存在所有阶段。
provided:只在开发、测试阶段使用,目的是不让Servlet容器和你本地仓库的jar包冲突 ,告诉maven这个jar包未来在我的服务器中有,不需要将它打包在工程中;实际项目打包的时候,lib文件夹里面maven导入的provided包(jar包)都没有。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api。
runtime:只在运行时使用,如JDBC驱动,适用运行和测试阶段。
test:只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system:(类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它)系统范围,与provided类似,只是标记为该scope的依赖包需要明确指定基于文件系统的jar包路径。因为需要通过systemPath指定本地jar文件路径,所以该scope是不推荐的。如果是基于组织的,一般会建立本地镜像,会把本地的或组织的基础组件加入本地镜像管理,避过使用该scope的情况。