无法解析类或包 ‘mysql’ 更少… (Ctrl+F1) Inspection info: Checks Spring Boot application .properties configuration files. Highlights unresolved and deprecated configuration keys and invalid values.
问题
在配置类里爆红,但是项目也能启动 其实是我们的依赖包引用有问题, 如图:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>8.0.19</version>
</dependency>
这里边的<scope>runtime</scope> 节点有问题。
解决方法
这边要改成下边的: <scope>compile</scope> 即可 !!!另一种修改方式这个博客进去看看
总结
那么对于maven几个scope区别都是啥呢 maven总共有6种scope,分别 compile,provided,runtime,test,system,import
compile 这是默认scope,如果未指定,则使用此scope。 scope为compile依赖在项目的所有classpath中都可用。 此外,这些依赖将传播到依赖项目。provided 和compile很像,但表示您希望JDK或容器在运行时提供依赖性。 例如,在为j2ee构建Web应用程序时,您可以将Servlet API和相关Java EE API r的依赖scope设置为provided,因为Web容器(如tomcat,jetty等)提供了这些类。 此scope仅在编译时和测试classpath中可用,并且不会传递。runtime 此scope表示编译时不需要使用此依赖项,但是在执行时使用。 它在运行时的classpath和测试时classpath中,但不在编译classpath。简单一句话就是编译时不使用这个依赖,但运行和运行测试时会使用。test test表示构建、运行应用程序不需要此依赖,仅可用于测试代码的编译和执行阶段。 此scope不具有传递性。system 和provided的类似,只是您必须提供明确包含它的JAR。 此依赖在中央仓库中并不会存在。这个场景主要是别人丢给你一个jar包,你要使用其中的功能,可以把jar放到代码目录下,加个system依赖,指定下Jar路径。import 此scope仅在部分中的且type为pom的依赖项上使用。 它表示要把当前pom.xml中中的部分依赖使用import进来的pom文件中的依赖来替换。 虽然当前pom中的部分依赖被替换掉了,但这个并不影响当前pom中的对应依赖之前前的传递属性。这个有点绕,可以悟一下。举例:当前pom.xml中 里有依赖 slf4j-log4j,然后import了另一个依赖里也包含slf4j-log4j,那么就会使用import进来里的slf4j-log4j。
祝您万事顺心,没事点个赞呗,关注一下也行啊,有啥要求您评论哈
|