首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在springboot中使用gradle时,加载依赖项遇到sun.security.validator.validatorexception。我不知道怎么解决它

在Spring Boot项目中使用Gradle构建时,如果遇到sun.security.validator.ValidatorException异常,通常是因为Java的安全设置不允许加载某些SSL证书。这个问题可能是由于Gradle尝试从一个不安全的源下载依赖项导致的。

基础概念

sun.security.validator.ValidatorException是Java安全框架抛出的一个异常,当SSL证书验证失败时会触发这个异常。SSL证书用于在客户端和服务器之间建立安全连接。

解决方法

解决这个问题通常需要配置Java的安全设置,以允许Gradle从这些源下载依赖项。以下是一些可能的解决方案:

1. 更新Java信任库

确保你的Java安装包含了最新的信任库。这可以通过更新Java到最新版本来实现。

2. 配置Gradle使用自定义的信任库

你可以在gradle.properties文件中配置Gradle使用自定义的信任库。例如:

代码语言:txt
复制
systemProp.javax.net.ssl.trustStore=path_to_your_truststore
systemProp.javax.net.ssl.trustStorePassword=your_truststore_password

3. 忽略SSL证书验证(不推荐)

在开发环境中,你可以暂时忽略SSL证书验证,但这在生产环境中是不安全的。可以通过在gradle.properties文件中添加以下配置来实现:

代码语言:txt
复制
systemProp.javax.net.ssl.trustStore=C:/path/to/your/keystore.jks
systemProp.javax.net.ssl.trustStorePassword=changeit

或者,你可以使用以下代码片段来忽略SSL证书验证:

代码语言:txt
复制
import javax.net.ssl.*;
import java.security.cert.X509Certificate;

public class SSLUtil {
    public static void disableCertificateValidation() {
        TrustManager[] trustAllCerts = new TrustManager[]{
            new X509TrustManager() {
                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }
                public void checkClientTrusted(X509Certificate[] certs, String authType) {}
                public void checkServerTrusted(X509Certificate[] certs, String authType) {}
            }
        };

        try {
            SSLContext sc = SSLContext.getInstance("SSL");
            sc.init(null, trustAllCerts, new java.security.SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

然后在你的build.gradle文件中调用这个方法:

代码语言:txt
复制
task disableSSLValidation(type: JavaExec) {
    main = 'SSLUtil'
    classpath = sourceSets.main.runtimeClasspath
    args = []
}

preBuild.dependsOn disableSSLValidation

应用场景

这个问题通常出现在企业内部网络或者使用自签名证书的环境中。在这些环境中,Gradle可能无法验证SSL证书的有效性。

参考链接

请注意,忽略SSL证书验证可能会导致安全风险,因此在生产环境中应该谨慎使用。如果可能,最好是通过正确配置信任库来解决这个问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android Studio查看第三方库依赖

还没添加依赖之前,项目中也是使用的Glide进行图片的加载,会不会是项目中的Glide与容联Demo的Glide有冲突呢。...果然将容联Demo的Glide版本改成4.5.0之后,编译运行进入客服界面后,没有报错了,完美解决。...这就是之前遇到的库冲突的问题,这个问题有错误信息可以定位到是Glide库依赖的问题,要是遇到其它错误信息没那么显著的,那是不是就头疼了呢。...当时遇到这个问题,并没有使用查看依赖树的方式,而是直接查看了源码,因为当时不知道还能这么干,幸运的是很快就定位到了问题所在,所以当我们升级第三方库或者引入新的第三方库,库与库之间依赖冲突,我们需要知道每个第三方依赖库的依赖树...名称) MacOS中使用下面的命令: .

2.5K30

Android查看第三方库的依赖树汇总

还没添加依赖之前,项目中也是使用的Glide进行图片的加载,会不会是项目中的Glide与容联Demo的Glide有冲突呢。...果然将容联Demo的Glide版本改成4.5.0之后,编译运行进入客服界面后,没有报错了,完美解决。...这就是之前遇到的库冲突的问题,这个问题有错误信息可以定位到是Glide库依赖的问题,要是遇到其它错误信息没那么显著的,那是不是就头疼了呢。...当时遇到这个问题,并没有使用查看依赖树的方式,而是直接查看了源码,因为当时不知道还能这么干,幸运的是很快就定位到了问题所在,所以当我们升级第三方库或者引入新的第三方库,库与库之间依赖冲突,我们需要知道每个第三方依赖库的依赖树...名称) MacOS中使用下面的命令: .

3.6K10
  • sofa-ark类隔离技术分析调研

    Gradle5.0引入了"java-library"插件,试图让组件开发方在编写组件代码,主动控制好自己的依赖是否暴露给组件接入方(这个插件老版本也有,不过只有5.0版本真正有用)。...但是仅仅放进来也是不够的,因为jvm并不知道要去这里拿这些依赖。为此,启动真正的项目之前,我们还要想办法加载这些依赖。...慢着,我们在打包都没有指定Main-Class,如果是非SpringBoot项目,甚至都没有加@SpringBootApplication注解,那么打包插件是怎么知道要运行的是哪一个类呢?...不过这不是使用的重点,也就没有过多研究。 热加载 当你启动ark包,你会发现你的1234端口开放了一个telnet接口,当然这个端口默认是没有任何用的。...IDE启动,由于主类的静态代码块是会在容器启动之前就会加载一次的。

    1.7K30

    springboot框架原理及流程!详细的给大家梳理一些

    springboot框架原理及流程,想要成为专业的Java开发程序员,springboot框架入门到进阶是一定要掌握的,Spring Boot框架是当今Java后端开发中非常流行和广泛使用的框架,掌握...基于约定大于配置的原则,启动过程自动加载和配置应用程序所需的各种组件和功能。...起步依赖:Spring Boot提供了一套起步依赖(Starter Dependencies),这些依赖是预先配置好的依赖集合,可以满足特定的应用场景。...使用条件化配置(Conditional Configuration)来根据条件决定是否启用某个组件,以及如何配置该组件。...、ProblemDetail、预编译AOT等,详解了SpringBoot核心知识点,突出Web应用痛点解决方案。

    41520

    边学边用Gradle:Gradle的脚本结构

    该类路径也用于加载构建脚本使用的插件。 简单说即设置脚本的运行环境。 buildscript的声明是gradle脚本自身需要使用的资源。可以声明的资源包括依赖、第三方插件、maven仓库地址等。...而在build.gradle文件中直接声明的依赖、仓库地址等信息是项目自身需要的资源。...依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件,如果前面定义了repositories{}maven 库,使用maven的依赖没接触过ivy。。)...该classpath声明说明了执行其余的build脚本,class loader可以使用这些你提供的依赖。这也正是我们使用buildscript代码块的目的。...所以他需要指定一个MainClass, 解决办法: 关掉bootRepackage任务 bootRepackage.enabled = false 或配置mainclass springBoot

    1.7K00

    【2022最新Java面试宝典】—— SpringBoot面试题(44道含答案)

    SpringBoot微服务如何实现 session 共享 ? 39. 您使用了哪些 starter maven 依赖? 40. Spring Boot 的 starter 到底是什么 ?...SpringBoot的缺点 觉得是为难人,SpringBoot目前觉得没有什么缺点,非要找一个出来觉得就是由于不用自己做的配置,报错很难定位。 11....单纯做 Spring Boot 开发,可能不太容易遇到 bootstrap.properties 配置文件,但是结合Spring Cloud ,这个配置就会经常遇到了,特别是需要加载一些远程配置文件的时侯...为了实现 Spring Boot 的安全性,我们使用 spring-boot-starter-security 依赖,并且必须添加 安全配置。只需要很少的代码。...您使用了哪些 starter maven 依赖

    1.4K10

    SpringBoot面试题大汇总附答案,SpringBoot面试题-持续更新「建议收藏」

    大家好,又见面了,是你们的朋友全栈君。...1、 打包用命令或者者放到容器运行 2、 用 Maven/ Gradle 插件运行 3、 直接执行 main 方法运行 5、SpringBoot 如何解决跨域问题 ?...这种解决方案并非 SpringBoot 特有的,传统的 SSM 框架,就可以通过 CORS 来解决跨域问题,只不过之前我们是 XML 文件配置 CORS ,现在可以通过实现WebMvcConfigurer...基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望XML和Java之间来回切换。...19、Async异步调用方法 20、您使用了哪些starter maven依赖? 21、SpringBoot 有哪些优点? 22、如何给静态变量赋值?

    2.1K30

    Gradle 进阶学习之 Dependencies 【依赖

    1、依赖的方式 Gradle 依赖分别为直接依赖,项目依赖,本地 jar 依赖Gradle依赖管理是一个非常重要的部分,允许你指定项目所需的各种库和模块。...包一般都是向下兼容的】,实际开发,还 是建议使用官方自带的这种解决方案。...5.4 强制使用某个版本【官方建议】 拓展 Gradle ,如果你想要避免依赖冲突并确保构建的可预测性,你可以配置构建过程遇到依赖冲突立即失败。这可以帮助你快速发现并解决版本不一致的问题。...以下是如何配置 Gradle 遇到依赖冲突立即失败的示例: configurations.all { resolutionStrategy.failOnVersionConflict() }...resolutionStrategy.failOnVersionConflict() 会让 Gradle 解析依赖,如果遇到任何版本冲突,就会立即停止构建并报告错误。

    1.3K21

    SpringBoot 面试问答总结(VIP典藏版),最详细!全面!爆肝!

    个人理解SpringBoot就是由各种Starter组合起来的,我们自己也可以开发Starter sprinBoot启动由**@SpringBootApplication注解会自动去maven读取每个...觉得是为难人,SpringBoot目前觉得没有什么缺点,非要找一个出来觉得就是由于不用自己做的配置,报错很难定位。 11.运行 Spring Boot 有哪几种方式?...单纯做 Spring Boot 开发,可能不太容易遇到bootstrap.properties配置文件,但是结合SpringCloud ,这个配置就会经常遇到了,特别是需要加载一些远程配置文件的时侯...为了实现 Spring Boot 的安全性,我们使用spring-boot-starter-security依赖,并且必须添加安全配置。只需要很少的代码。...开发人员可以重新加载 Spring Boot上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。SpringBoot 发布的第一个版本没有这个功能。 这是开发人员最需要的功能。

    1.7K80

    SpringBoot面试题及答案 110道(持续更新)

    使用 Spring Cloud Config 配置中心,这时需要在 bootstrap 配置文件添加连接到配置中心的配置属性来加载外部配置中心的配置信息; 一些固定的不能被覆盖的属性; 一些加密/解密的场景...这种解决方案并非 SpringBoot 特有的,传统的 SSM 框架,就可以通过 CORS 来解决跨域问题,只不过之前我们是 XML 文件配置 CORS ,现在可以通过实现WebMvcConfigurer...2、 使用 UTF-8 格式编码。 3、 继承自 spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们依赖才不需要写版本号。...08、SpringBoot读取配置文件的方式 09、您使用了哪些 starter maven 依赖? 10、SpringBoot有哪些优点?...51、使用 SpringBoot 启动连接到内存数据库 H2 的 JPA 应用程序需要哪些依赖? 52、SpringBoot 的 starter 到底是什么 ?

    6.1K10

    「纯手打」2万字长文从0开始Spring Boot(上)

    SpringBoot 让多数依赖开箱即用,或仅需少量 yml配置,这样的好处完全取决于 SpringBoot使用了约定大于配置的设计。...SpringBoot 官方提供了 Mvaen、 SpringBootCLI、 Gradle、 SDKMAN、 MacPorts 等等安装SpringBoot的方式,我们从简出发,不使用这些安装方式,直接使用...因为开始的时候并没有选择 SpringMvVC 作为依赖,目前项目仅仅是 SpringBoot 的骨架程序。 害,只是一个空壳子啊。莫慌,下面,引入 mvc。 4....那么, 怎么解决这个问题呢?很简单,只需要在 拦截器重写一个方法告诉 SpringBoot 那些目录是静态资源就OK 了 顺便,还能将你的自定义目录加进去,岂不美哉?...遇到问题怎么办? 俗话说,授人以鱼不如授人以渔,与其将你可能遇到的问题一一告诉你,不如告诉你如何去解决遇到的问题,这样一来,不管你遇到任何的问题,都能靠自己的能力去解决了!

    38130

    SpringBoot就是这么简单

    s一、SpringBoot入门 今天慕课网中看见了Spring Boot这么一个教程,这个Spring Boot作为JavaWeb的学习者肯定至少会听过,但我是不知道他是什么玩意。...SpirngBoot有三种方式: idea中直接使用启动(最常用) 使用mvn 命令来启动 使用mvn编译,而后class目录生成jar包,使用Java命令来启动 1.2目属性配置 使用SpringBoot...那如果我们要改端口的话,怎么改呢??项目中可能有一些属性变量,那怎么配置呢??? SpringBoot是提供了application.properties这种配置文件供我们使用的。...而我们的生产环境的path路径是:zhognfucheng.site。这就造成了差异,springBoot,这种差异就很好解决了。 ?...四、扩展阅读 后来使用SpringBoot搭建了一个简单的项目,从中也遇到了不少的问题和相关的没有接触到的知识点。

    1.2K80

    SpringBoot就是这么简单

    s一、SpringBoot入门 今天慕课网中看见了Spring Boot这么一个教程,这个Spring Boot作为JavaWeb的学习者肯定至少会听过,但我是不知道他是什么玩意。...SpirngBoot有三种方式: idea中直接使用启动(最常用) 使用mvn 命令来启动 使用mvn编译,而后class目录生成jar包,使用Java命令来启动 1.2目属性配置 使用SpringBoot...那如果我们要改端口的话,怎么改呢??项目中可能有一些属性变量,那怎么配置呢??? SpringBoot是提供了application.properties这种配置文件供我们使用的。...而我们的生产环境的path路径是:zhognfucheng.site。这就造成了差异,springBoot,这种差异就很好解决了。 ?...四、扩展阅读 后来使用SpringBoot搭建了一个简单的项目,从中也遇到了不少的问题和相关的没有接触到的知识点。

    70320

    这次打死也不更了。。

    关键更新 依赖分析器 (Dependency Analyzer) 为了促进依赖管理和冲突解决,IntelliJ IDEA 实现了依赖分析器,提供项目和子项目中使用的所有依赖(包括传递性依赖)的广泛信息...这个新功能允许轻松检测冲突的依赖关系并解决问题,比如可以过滤掉相同的依赖,并查看它们不同库的存在,还可以快速浏览依赖,以正确构建配置。...Maven 和 Gradle 依赖的漏洞。...Kubernetes 支持 Kubernetes 编辑集群上的资源 现在可以从编辑器选项卡修改从集群加载的资源。...构建工具 更新 Gradle 的进度条 为 Gradle 进程实现了一个确定的进度条,例如下载依赖和导入工件,允许跟踪文件发生的情况并估计该过程何时完成。

    3.5K40

    使用Spring Boot创建docker image

    简介 很久很久以前,我们是怎么创建Spring Boot的docker image呢?...第三部分是Spring Boot的类加载器,fat jar包的启动是通过Spring Boot的jarLauncher来创建LaunchedURLClassLoader,通过加载lib下面的jar包...第一个问题:我们是用的far jar,使用far jar的过程中会有一定的性能问题,肯定要比解压过后的性能要低,尤其是容器环境运行的情况下,可能会更加突出。...Maven和Gradle,Spring Boot引入了新的phase:spring-boot:build-image 我们可以直接运行: mvn spring-boot:build-image...没关系,如果你会正确的上网方式的话,那么估计你已经找到了一个代理。 将你的代理配置到Docker的代理里面,使用的是Docker desktop,下面是的配置: ?

    1.5K21

    一个 jar 包的自我修养

    当用户使用 jar 包的时候,可能会遇到以下这些问题: 文档缺失,一个功能怎么用,往往需要花半天到一天的时候到处找负责人,一步步沟通,很浪费时间; 依赖冲突,只是引用了一个用户认证包,结果把支持的...这在一个大工程相当重要,当一个项目中的外部依赖多了之后,外部依赖之间如果存在冲突,解决起来将会相当棘手。...玩? 试想一下,这时你的用户在用你的 jar 包的时候会不会也是这样吐槽。那么怎么解决呢? 其实很简单,只要在 pom 文件添加 maven-source-plugin 插件即可。 <!...遇到最不靠谱的做法就是要求必须提供文件的绝对路径,甚至有些只支持默认绝对路径不支持自定义! 因为遇到很多这样奇葩的包,因此写 jar 包的时候都会特别留意。...我们只需要这么做: 引入 spring-context 依赖,注意加上 provided 我们自定义的 Config 类的字段上使用 @Value 注解,自动从 Spring 上下文注入配置 增加

    83220

    SpringBoot总结之浅析自动化配置原理

    简单来说就是SpringBoot其实不是什么新的框架,默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。...SpringBoot四个主要特性 SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖,这样就可以一次性添加到项目的Maven或Gradle构建中; 自动配置:SpringBoot...Springboot遵循“约定优于配置”的原则,使用注解对一些常规的配置做默认配置,减少或不使用xml配置,让你的项目快速运行起来。...目前实际项目开发,该注解标注的类为主启动类,即运行如下代码的main方法作为入口,一般main方法中使用SpringApplication.run()来启动整个应用。...SpringApplication.run(…)的内部就会执行selectImports()方法,找到所有JavaConfig自动配置类的全限定名对应的class,然后将所有自动配置类加载到Spring

    55720

    Android Gradle 入门

    我们通过右击的电脑,打开属性面板,然后找到环境变量配置,添加GRADLE_HOME环境变量,然后把GRADLE_HOME\bin添加到PATH系统变量里保存即可。.../distributions/gradle-2.5-bin.zip,通常都会把bin改为all,这样开发过程,就可以看到gradle的源代码了。...Gradle日志 在这里介绍单独介绍Gradle日志的目的是为了便于我们遇到问题的时候,能够根据日志信息分析和解决问题。...默认情况下,堆栈信息的输出是关闭的,需要我们通过命令行的堆栈信息开关打开,这样我们构建失败的时候,Gradle才会输出错误堆栈信息,便于我们定位分析和解决问题。...上两种情况我们实际项目中都遇到过,最后就是通过强制刷新解决的。

    87040

    java学习|创建springboot工程

    spring开发的同学都知道,为了一个功能要到处找依赖,然后复制dependency到pom.xml里面,springboot把一个功能依赖的jar包做了打包,只用一个依赖就可以解决问题,可以选常用的功能模块...帮忙把spring的依赖和配置简单化了,以前我们spring中都是用的各种去注入,现在在springboot只需要在 application.perporty配置下就可以了,我们可以往深入想一下...首先,依赖肯定是用maven/gradle帮忙管理的,所以starter项目应该也是一个maven/gradleSpringboot程序,pom.xml把依赖都定义好,定义哪些?...有配置,有依赖,下面就要加载配置,初始化实例,准备工作了,很多我们引用starter之后,没有配置bean,就可以直接用里面的功能了,就是这一步,starter里面帮我们装配好了bean 并实例化...思路如上,扩展就是自己实现一个Springboot 的 starter 最后还是要说两句 小刀的文章里面,希望呈现给大家的是一种思路,引发大家思考动手的思路,很多人在群里问要怎么学,路只有一条,那就是多动手

    58350

    java后端开发框架有哪些(java后端需要学哪些框架)

    和业务逻辑有关的 这类框架主要用到了两个特性,以此来简化程序的复杂性:控制反转(IOC)和依赖注入(DI)。程序结合这类框架,写出来的程序具有更好的维护性扩展性,也更加清晰简洁。... Spring 里,你可以使用 XML、SpringJavaConfig 或者 Groovy-Spring DSL 来连接对象依赖关系,也可以使用其它的方案。...SpringBoot:Spring 组件一站式解决方案,简化使用 Spring 框架的难度,简省繁重的配置。...Zookeeper: 分布式服务框架,是Apache Hadoop 的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置的管理等...maven到gradle的迁移难度,并在构建方面改善了很多maven的不足,,同时,gradle对比maven更好的面向ant用户,使用maven,虽然能通过plugin来跑ant的命令,但是maven

    2.1K11
    领券