使用 allowInsecureProtocol 属性解决 gradle 的仓库地址不安全警告,在 IDEA 的 Terminal 中使用命令
1 |
$ gradlew --warning-mode all |
可以打印出当前 gradle 存在的所有警告信息。
如果有报以下警告:
1 2 3 4 |
Using insecure protocols with repositories, without explicit opt-in, has been deprecated. This is scheduled to be removed in Gradle 7.0. Switch Maven repository 'm aven(http://maven.aliyun.com/nexus/content/groups/public/)' to a secure protocol (like HTTPS) or allow insecure protocols. See https://docs.gradle.org/6.8.3/dsl/or g.gradle.api.artifacts.repositories.UrlArtifactRepository.html#org.gradle.api.artifacts.repositories.UrlArtifactRepository:allowInsecureProtocol for more details. Configuration on demand is an incubating feature. |
说明你配置了除 maven 中央仓库之外的其他不安全的仓库(至于“不安全”在这里的定义,我也不是很清楚,一些国内的镜像仓库例如阿里的也是“不安全”的)gradle 中有一个属性可以允许 gradle 使用“不安全”的仓库并且不报警告信息,该属性是 allowInsecureProtocol,官方的
1 |
Description :Specifies whether it is acceptable to communicate with a repository over an insecure HTTP connection. |
翻译过来就是指定通过不安全的HTTP连接与仓库通信是否可接受,如果该属性的值设置为 true,则表示接受“不安全”的仓库地址。
目前,升级项目的 gradle 到 7.0.2 版本之后,报错如下:
1 2 3 4 5 6 7 8 9 |
* What went wrong: A problem occurred configuring root project 'xxxx'. > Could not resolve all dependencies for configuration ':classpath'. > Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven(http://xxx.xxx.xxx.xxx/jcenter/)' to red irect to a secure protocol (like HTTPS) or allow insecure protocols. See https://docs.gradle.org/7.0.2/dsl/org.gradle.api.artifacts.repositories.UrlArtifactRepos itory.html#org.gradle.api.artifacts.repositories.UrlArtifactRepository:allowInsecureProtocol for more details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. |
只需要在 build.gradle 中进行如下的配置即可:
1 2 3 4 5 6 7 8 |
repositories { ... maven { allowInsecureProtocol = true ... } } |
参考链接