Maven Wagon的ssl insecure参数对应的Gradle等价配置查询
Gradle中等价于Maven
-Dmaven.wagon.http.ssl.insecure=true 的配置 当然有对应的Gradle配置方案!我会分两种场景给你说明,分别对应临时调试和持久化的仓库配置:
1. 命令行临时忽略SSL验证(类似Maven的参数方式)
如果只是临时需要跳过SSL证书校验(比如调试内部自签证书的仓库),可以在执行Gradle命令时通过JVM参数实现:
./gradlew yourTaskName -Dorg.gradle.jvmargs="-Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/dev/null -Djavax.net.ssl.trustStorePassword=changeit"
这条命令会让Gradle的JVM进程忽略SSL证书的有效性,和Maven的-Dmaven.wagon.http.ssl.insecure=true效果一致,但注意这是全局生效的,不建议在生产环境使用。
2. 构建脚本中精准配置(推荐方式)
Gradle提供了更可控的配置方式——针对单个仓库开启不安全协议支持,这样只会影响你指定的仓库,不会全局破坏SSL安全性。分两种DSL写法:
Groovy DSL(适用于build.gradle)
repositories { maven { url "https://your-insecure-repo.example.com/maven" allowInsecureProtocol = true // 核心配置,等价于Maven的ssl.insecure=true } }
Kotlin DSL(适用于build.gradle.kts)
repositories { maven { url = uri("https://your-insecure-repo.example.com/maven") isAllowInsecureProtocol = true // Kotlin DSL中布尔属性用is前缀 } }
额外补充
如果你需要全局默认忽略SSL验证(非常不推荐,仅用于极端调试场景),可以在项目根目录的gradle.properties文件中添加以下配置:
org.gradle.jvmargs=-Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/dev/null -Djavax.net.ssl.trustStorePassword=changeit
内容的提问来源于stack exchange,提问作者user16778785




