【idea】解决sprintboot项目创建遇到的问题
目录
一、报错Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
三、java: 无法访问org.springframework.web.bind.annotation.CrossOrigin
四、整合mybatis的时候,报java.lang.IllegalArgumentException: Unable to instantiate org.mybatis.spring.boot
一、报错Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
报错:在使用Maven下载相关包时,出现错误Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
原因:无法识别使用哪个版本的 spring-boot-maven-plugin
包。
plugin在maven里需要专门的配置,没有配置的时候就会去普通仓库里找,但是plugin不是maven家的,所以找不到,对于这个情况呢,阿里有一个仓库可以下载这个,但是需要在settings.xml里进行配置。
解决方法:
在你maven安装地址里面的conf文件夹下面有一个settings.xml文件,右击pom.xml文件,选择maven,选择“open settings.xml ”可以快速打开这个文件。
对这个settings.xml文件添加下列代码,
<profile>
<id>spring plugins</id>
<activation>
<jdk>spring plugins</jdk>
</activation>
<pluginRepositories>
<pluginRepository>
<id>spring plugins</id>
<name>Spring plugins</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
<layout>default</layout>
<snapshotPolicy>always</snapshotPolicy>
</pluginRepository>
</pluginRepositories>
</profile>
保存settings.xml文件,退出。
在pom.xml文件中,使用 <pluginManagement>
标签管理插件。具体做法是在原来的 <plugins>
标签外层增加 <pluginManagement>
标签,如下所示。
二、报错java: 错误: 无效的源发行版:17
原因:POM文件中配置的JDK版本信息
与 "Project Structure" 窗口配置的JDK版本
不一致。
比如在本案例中,POM文件配置的JDK版本为17,而Project Structure" 窗口配置的JDK版本却为1.8,两者不一致导致出现上述报错。
解决:
修改 "Project Structure" 窗口配置的JDK版本
。
打开 “Project Structure” 窗口,修改 Project 和 Modules 下的 JDK 版本,使其保持与POM文件中配置的版本信息一致(如本项目为JDK17)。如下图所示。
ok,问题解决。
三、java: 无法访问org.springframework.web.bind.annotation.CrossOrigin
报错:
java: 无法访问org.springframework.web.bind.annotation.CrossOrigin
错误的类文件: /D:/apache-maven-3.8.6-bin/apache-maven-3.8.6/maven-jar/org/springframework/spring-web/6.0.14/spring-web-6.0.14.jar!/org/springframework/web/bind/annotation/CrossOrigin.class
类文件具有错误的版本 61.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。
原因:
SpringBoot使用了3.0或者3.0以上
,因为Spring官方发布从Spring6以及SprinBoot3.0
开始最低支持JDK17
,所以仅需将SpringBoot版本降低为3.0以下即可(或者将JDK版本升级为17及以上)。
Spring Boot 3.0 最低要求 Java 17,并向上兼容支持 Java 19。
解决方法:
(1)此处我选择降低SpringBoot版本,将SpringBoot版本降低为3.0以下,如下所示。
pom.xml
(2)还有另外一种方法:升级JDK版本,将JDK版本升级为JDK17及以上版本。如下所示。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>first-spring-boot-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>first-spring-boot-project</name>
<description>first-spring-boot-project</description>
<properties>
<java.version>17</java.version>
</properties>
点击maven更新,
OK,问题解决。
四、整合mybatis的时候,报java.lang.IllegalArgumentException: Unable to instantiate org.mybatis.spring.boot
问题还原:初次搭建SpringBoot整合Mybatis框架,导入依赖的版本是3.0.1,我本地的jdk是1.8
原因:版本不兼容而已。
解决方法:降低依赖版本
<!-- SpringBoot整合Mybatis,导入此启动器-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>