英文:
ClassNotFoundException issue in Maven project
问题
我被指派完成一个作为申请工作的一部分的项目。公司派我安装以下要求:
- OpenJDK 1.8
- Maven 3.x
- Git 2.x
- MySQL 5.x。
我正试图从服务器端(Java)运行应用程序,但它抛出以下异常(可能是依赖问题,但我找不到它):
2020-08-30 07:34:56.850 错误
org.springframework.boot.SpringApplication:858 - 应用程序运行失败 java.lang.NoClassDefFoundError:
org/springframework/boot/bind/RelaxedDataBinder at
org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector.getExcludeAutoConfigurationsProperty(EnableAutoConfigurationImportSelector.java:179)
...
Pom.xml(项目中的通用部分)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-
4.0.0.xsd">
...
</project>
Pom.xml(app 文件夹内部的部分)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-
4.0.0.xsd">
...
</project>
(以上是您提供的内容的翻译部分,不包含额外的回答或内容。)
英文:
I was assigned to complete a project as part of my application for a job. The company send me to install the following requirements:
- OpenJDK 1.8
- Maven 3.x
- Git 2.x
- MySQL 5.x.
I am trying to run the app from the server side (java) and it throws this exception (probably a dependency issue but i can't find it):
> 2020-08-30 07:34:56.850 ERROR
> org.springframework.boot.SpringApplication:858 - Application run
> failed java.lang.NoClassDefFoundError:
> org/springframework/boot/bind/RelaxedDataBinder at
> org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector.getExcludeAutoConfigurationsProperty(EnableAutoConfigurationImportSelector.java:179)
> at
> org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector.getExclusions(EnableAutoConfigurationImportSelector.java:172)
> at
> org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector.selectImports(EnableAutoConfigurationImportSelector.java:87)
> at
> org.springframework.context.annotation.ConfigurationClassParser$DefaultDeferredImportSelectorGroup.process(ConfigurationClassParser.java:892)
> at
> org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGrouping.getImports(ConfigurationClassParser.java:878)
> at
> org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:804)
> at
> org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:774)
> at
> org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:185)
> at
> org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:315)
> at
> org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:232)
> at
> org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275)
> at
> org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95)
> at
> org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:705)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:531)
> at
> org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
> at
> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
> at
> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
> at
> org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
> at
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
> at
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
> at gr.publicsoft.springbootcrud.Application.main(Application.java:12)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method) at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566) at
> org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
> Caused by: java.lang.ClassNotFoundException:
> org.springframework.boot.bind.RelaxedDataBinder at
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
> at
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
> ... 26 common frames omitted
**Pom.xml(general in project)**
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-
4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>gr.publicsoft.springbootcrud</groupId>
<artifactId>spring-boot-crud</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
</properties>
<modules>
<module>springbootcrud-domain</module>
<module>springbootcrud-service</module>
<module>springbootcrud-webapp</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
**Pom.xml(inside app folder)**
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-
4.0.0.xsd">
<parent>
<artifactId>spring-boot-crud</artifactId>
<groupId>gr.publicsoft.springbootcrud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>springbootcrud-webapp</artifactId>
<properties>
<java.version>1.8</java.version>
<finalName>${project.artifactId}-${project.version}</finalName>
</properties>
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>gr.publicsoft.springbootcrud</groupId>
<artifactId>springbootcrud-service</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>1.21</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>1.4.1.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>${finalName}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
</project>
答案1
得分: 1
实际上,spring-boot-starter-parent
包含了 spring-boot-autoconfigure
,请参阅<https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/2.3.3.RELEASE> 查看托管的依赖项。
如果您明确指定了这个版本(也就是说,有两个不同的版本),可能会出现错误。
英文:
Actually the spring-boot-starter-parent
contain spring-boot-autoconfigure
,see <https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/2.3.3.RELEASE> for Managed Dependencies .
If you specify this version specifically (that is, there are two different versions), an error may occur.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论