weixin_48477226 2024-11-25 19:46 采纳率: 66.7%
浏览 46
已结题

springBoot依赖问题

IDEA在build时,报错:java: 程序包javax.validation不存在。当前springboot版本为2.6.3。spring-boot-starter-validation的版本为2.4.12,两个依赖均已经导入,starter依赖在父工程中,在maven的依赖树和Dependencies中都可以查询到。请问是什么问题。下图是pom文件内容


```xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.hytenant</groupId>
        <artifactId>hytenant-common</artifactId>
        <version>3.4.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>hytenant-common-core</artifactId>

    <description>
        hytenant-common-core核心模块
    </description>

    <dependencies>

        <!-- SpringCloud Openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <!-- SpringCloud Loadbalancer -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

        <!-- Spring Context Support -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>

        <!-- Spring Web -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <!-- DINGDING -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>dingtalk</artifactId>
            <version>1.2.15</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>alibaba-dingtalk-service-sdk</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!-- Transmittable ThreadLocal -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>transmittable-thread-local</artifactId>
        </dependency>

        <!-- Pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
        </dependency>

        <!-- Hibernate Validator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
            <version>2.4.12</version>
        </dependency>

        <!-- Jackson -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

        <!-- Alibaba Fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>

        <!-- Jwt -->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
        </dependency>

        <!-- Jaxb -->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
        </dependency>

        <!-- Apache Lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

        <!-- Commons Io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>

        <!-- Commons Fileupload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
        </dependency>

        <!-- excel工具 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>

        <!-- Java Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
            <version>2.9.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.14</version> <!-- 最新的 4.x 版本 -->
        </dependency>

        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.15.4</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.26</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.15</version>
            <scope>compile</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/cn.jimmyshi/bean-query -->
        <dependency>
            <groupId>cn.jimmyshi</groupId>
            <artifactId>bean-query</artifactId>
            <version>1.1.5</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.11.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>33.0.0-jre</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-csv</artifactId>
            <version>1.10.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.20</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.20</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>


    </dependencies>

</project>


下图是依赖树



![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/d1c2ff31e87b461e81508d4524c782de.png "#left")
  • 写回答

16条回答 默认 最新

  • GISer Liu 2024-11-26 10:20
    关注

    该回答引用自GPT-4o, 由博主 GISer Liu 编写:

    问题分析

    用户在构建Spring Boot项目时遇到错误:java: 程序包javax.validation不存在。用户已经导入了spring-boot-starter-validation依赖,并且在Maven的依赖树和Dependencies中都可以查询到该依赖。然而,构建仍然失败,提示缺少javax.validation包。

    关键点

    1. Spring Boot版本:用户使用的Spring Boot版本为2.6.3。
    2. spring-boot-starter-validation版本:用户使用的版本为2.4.12。
    3. 依赖管理spring-boot-starter-validation依赖在父工程中,但在子模块中仍然报错。

    可能原因

    1. 版本不兼容:Spring Boot 2.6.3与spring-boot-starter-validation 2.4.12版本可能存在不兼容问题。
    2. 依赖冲突:可能存在其他依赖与spring-boot-starter-validation冲突,导致javax.validation包无法正确加载。
    3. IDE缓存问题:IDEA的缓存可能导致依赖无法正确识别。

    解决方案

    方案一:升级spring-boot-starter-validation版本

    尝试将spring-boot-starter-validation版本升级到与Spring Boot 2.6.3兼容的版本。

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

    方案二:检查依赖冲突

    使用Maven的依赖树分析工具(如mvn dependency:tree)检查是否存在依赖冲突。如果发现冲突,可以尝试排除冲突的依赖。

    例如,如果发现spring-boot-starter-validation与某个其他依赖冲突,可以在pom.xml中排除该依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
        <version>2.4.12</version>
        <exclusions>
            <exclusion>
                <groupId>冲突的groupId</groupId>
                <artifactId>冲突的artifactId</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    方案三:清理IDE缓存

    有时IDEA的缓存可能导致依赖无法正确识别。可以尝试清理IDEA的缓存并重新导入项目。

    1. 关闭IDEA。
    2. 删除项目根目录下的.idea文件夹和*.iml文件。
    3. 重新打开IDEA并重新导入项目。

    方案四:手动添加javax.validation依赖

    如果上述方法都无法解决问题,可以尝试手动添加javax.validation依赖:

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

    总结

    通过升级spring-boot-starter-validation版本、检查依赖冲突、清理IDE缓存或手动添加javax.validation依赖,可以解决java: 程序包javax.validation不存在的问题。建议首先尝试升级spring-boot-starter-validation版本,因为这是最直接且可能最有效的解决方案。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月26日
  • 修改了问题 11月26日
  • 修改了问题 11月26日
  • 赞助了问题酬金15元 11月26日
  • 展开全部