Idea:使用Spring Initializr创建失败,无法读取maven仓库文件
环境:idea2019.3
maven3.5.3
boot2.6.7
文件目录结构如下:
问题
- 按照教程创建的springboot项目,运行之后发现无法读取maven仓库文件,具体错误消息如下:
Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.context.ApplicationListener : org.springframework.nativex.NativeListener
at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:456)
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:438)
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:431)
at org.springframework.boot.SpringApplication.(SpringApplication.java:263)
at org.springframework.boot.SpringApplication.(SpringApplication.java:241)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
at boot.DemoApplication.main(DemoApplication.java:10)
Caused by: java.lang.UnsupportedClassVersionError: org/springframework/nativex/NativeListener has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:284)
at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:449)
... 7 more
-
查看pom之后,发现有个java版本是11,但我记得构建的时候选的8,也不知道怎么回事。。。
-
修改java版本8之后还是1的错误
***
解决
- 在仔细对比教程上上
pom.xml文件之后,删除大部分没用的东西后可以运行了。 - 最初的模板配置文件
点击查看代码
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.6.7
com.codewater
demo
0.0.1-SNAPSHOT
demo
Demo project for Spring Boot
8
org.springframework.boot
spring-boot-starter-web
org.springframework.experimental
spring-native
${spring-native.version}
org.springframework.boot
spring-boot-devtools
runtime
true
org.springframework.boot
spring-boot-configuration-processor
true
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
org.projectlombok
lombok
${repackage.classifier}
paketobuildpacks/builder:tiny
true
org.springframework.experimental
spring-aot-maven-plugin
${spring-native.version}
test-generate
test-generate
generate
generate
spring-releases
Spring Releases
https://repo.spring.io/release
false
spring-releases
Spring Releases
https://repo.spring.io/release
false
native
exec
0.9.11
org.junit.platform
junit-platform-launcher
test
org.graalvm.buildtools
native-maven-plugin
${native-buildtools.version}
true
test-native
test
test
build-native
package
build
- 删除之后的
pom.xml内容:
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.6.7
com.codewater
demo
0.0.1-SNAPSHOT
demo
Demo project for Spring Boot
8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-devtools
runtime
true
org.springframework.boot
spring-boot-configuration-processor
true
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
org.projectlombok
lombok
- 运行成功
PS: 如果maven下载失败,可以参考上一遍的删除文件,然后就是选择指定的模块重新下载