You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建Spring Boot 1.5项目时出现Hibernate Validator类找不到错误

Spring Boot 1.5 编译时Hibernate Validator NoClassDefFoundError问题

问题现象

构建Spring Boot 1.5项目时触发编译错误,未直接引用org.hibernate.validator.group.DefaultGroupSequenceProvider类,但编译阶段抛出NoClassDefFoundError,错误并非业务代码编译错误,而是注解处理器引发的依赖缺失。

项目依赖配置

</dependency>

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.3.6.Final</version>
</dependency>

编译错误信息

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project priapp-mobileapi-proc: Fatal error compiling: java.lang.NoClassDefFoundError: org/hibernate/validator/group/DefaultGroupSequenceProvider: org.hibernate.validator.group.DefaultGroupSequenceProvider -> [Help 1]
[ERROR]

环境参数

  • Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T14:49:05-05:00)
  • Maven home: /Users/user/Documents/tools/apache-maven-3.5.3
  • Java version: 1.8.0_301, vendor: Oracle Corporation
  • Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/jre
  • Default locale: en_US, platform encoding: UTF-8
  • OS: macOS 10.15.7 (x86_64)

错误堆栈

Caused by: java.lang.ClassNotFoundException: org.hibernate.validator.group.DefaultGroupSequenceProvider
at java.net.URLClassLoader.findClass (URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass (ClassLoader.java:418)
at java.lang.ClassLoader.loadClass (ClassLoader.java:351)
at org.hibernate.validator.ap.checks.GroupSequenceProviderCheck.<init>(GroupSequenceProviderCheck.java:63)
at org.hibernate.validator.ap.checks.ConstraintCheckFactory.<init>(ConstraintCheckFactory.java:125)
at org.hibernate.validator.ap.ConstraintAnnotationVisitor.<init>(ConstraintAnnotationVisitor.java:68)
at org.hibernate.validator.ap.ConstraintValidationProcessor.process (ConstraintValidationProcessor.java:101)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor (JavacProcessingEnvironment.java:794)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs (JavacProcessingEnvironment.java:705)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800 (JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run (JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing (JavacProcessingEnvironment.java:1176)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations (JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.compile (JavaCompiler.java:856)
at com.sun.tools.javac.main.Main.compile (Main.java:523)
at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:129)
at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:138)
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:169)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:785)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:129)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)

问题原因与解决方法

原因分析

该错误是Hibernate Validator的注解处理器在编译阶段运行时找不到DefaultGroupSequenceProvider类导致的。该类属于Hibernate Validator核心模块,可能是注解处理器的classpath未包含完整依赖,或存在版本冲突。

解决步骤

  1. 确保编译阶段依赖完整
    确认hibernate-validator依赖范围为默认的compile(无需显式声明),保证编译阶段注解处理器能访问所有必要类。

  2. 显式添加注解处理器依赖
    若上述操作无效,添加与hibernate-validator版本一致的注解处理器依赖:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <version>5.3.6.Final</version>
        <scope>provided</scope>
    </dependency>
    
  3. 禁用注解处理器(临时方案)
    若不需要编译时校验,可在maven-compiler-plugin中禁用注解处理器:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <annotationProcessors>
                <!-- 空配置禁用所有注解处理器 -->
            </annotationProcessors>
        </configuration>
    </plugin>
    
  4. 使用Spring Boot Starter统一管理依赖
    推荐使用Spring Boot官方starter管理校验依赖,自动处理版本兼容:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    

    Spring Boot 1.5版本中该starter已适配对应Hibernate Validator版本,无需手动指定。


内容的提问来源于stack exchange,提问作者Berlin Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:45:13