当我点击运行As-> Spring Boot App 时,遇到以下错误消息:
线程中的异常" main" java.lang.ExceptionInInitializerError at org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader。(GroovyBeanDefinitionReader.java:129) 在 org.springframework.boot.BeanDefinitionLoader。(BeanDefinitionLoader.java:84) 在 org.springframework.boot.SpringApplication.createBeanDefinitionLoader(SpringApplication.java:668) 在 org.springframework.boot.SpringApplication.load(SpringApplication.java:609) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:961) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:950) 在 com.connectedworldservices.de.app.main.Application.main(Application.java:45) 引起:groovy.lang.GroovyRuntimeException:冲突模块 版本。模块[groovy-all在版本2.3.8中加载,你就是 试图加载版本2.3.2 org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl $ DefaultModuleListener.onModule(MetaClassRegistryImpl.java:509) 在 org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:77) 在 org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:71) 在 org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:53) 在 org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl。(MetaClassRegistryImpl.java:110) 在 org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl。(MetaClassRegistryImpl.java:71) 在groovy.lang.GroovySystem。(GroovySystem.java:33)... 8 更
我已经看到有一些人说它与classpath有关,但是无法知道如何在Spring Tools Suite中更改它。如果我单击项目中的文件夹并单击“运行配置”,我可以看到类路径选项卡,但在那里看不到Groovy引用,尽管在源选项卡中我可以请参阅对Groovy 2.3.8和2.3.2的引用,但是当我单击它们时,删除它们的选项将显示为灰色。
有谁知道如何在Spring Tools Suite中解决此问题?
感谢您的帮助。
答案 0 :(得分:3)
这是因为你正在使用Eclipse的Groovy插件。当它检测到Groovy项目时,它会将Groovy运行时附加到项目中,因为您可能需要一个。 Spring Boot也是如此,你最终会在类路径上使用两个不同版本的Groovy。
要解决此问题,您需要打开项目的“Java Build Path”属性,单击“Libraries”选项卡,然后删除“Groovy Runtime Libraries”条目。