Idea:使用Spring Initializr创建失败,无法读取maven仓库文件


环境:idea2019.3
maven3.5.3
boot2.6.7
文件目录结构如下:

问题

  1. 按照教程创建的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

  1. 查看pom之后,发现有个java版本是11,但我记得构建的时候选的8,也不知道怎么回事。。。

  2. 修改java版本8之后还是1的错误


***

解决

  1. 在仔细对比教程上上pom.xml文件之后,删除大部分没用的东西后可以运行了。
  2. 最初的模板配置文件
点击查看代码
<?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
                                
                            
                        
                    
                
            
        
    




  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.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
                        
                    

                
            
        
    
  



  1. 运行成功

PS: 如果maven下载失败,可以参考上一遍的删除文件,然后就是选择指定的模块重新下载