Gradle JCenter无法连接(亚马逊云),如何指定替代源?
解决亚马逊云环境无法连接JCenter仓库的替代方案
当然可以搞定!JCenter早就停止维护了,很多云环境(包括亚马逊云)要么因为网络策略限制,要么因为仓库本身的问题连不上,我之前在AWS上部署项目时也碰到过一模一样的报错,给你几个靠谱的替代仓库和具体配置方法:
推荐的JCenter替代仓库
- Maven Central:这是Java生态现在的标准中央仓库,绝大多数依赖都能在这里找到——你报错里的
spring-boot-loader-tools:1.5.4.RELEASE肯定有 - 阿里云Maven镜像:如果AWS访问Maven Central速度慢,这个镜像的海外节点访问很稳定,同步了几乎所有Maven Central的资源
- Spring Maven Repository:专门存Spring相关依赖的仓库,版本更全,更新也及时
Gradle项目配置(替换JCenter)
打开项目根目录的build.gradle(多模块项目的话可能要改settings.gradle),把原来的jcenter()直接替换成下面的仓库配置:
repositories { // 优先用官方中央仓库 mavenCentral() // 可选:AWS环境下访问速度更快的阿里云镜像 maven { url 'https://maven.aliyun.com/repository/public' } // 可选:Spring依赖专属仓库,确保能拉到所有Spring相关包 maven { url 'https://repo.spring.io/release' } }
如果你的项目用的是Gradle Kotlin DSL,配置改成这样:
repositories { mavenCentral() maven(url = "https://maven.aliyun.com/repository/public") maven(url = "https://repo.spring.io/release") }
Maven项目配置(替换JCenter)
打开pom.xml找到<repositories>节点,替换成下面的内容(或者直接添加这些仓库):
<repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <!-- 可选:阿里云镜像,提升AWS环境下的拉取速度 --> <repository> <id>aliyun-public</id> <url>https://maven.aliyun.com/repository/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <!-- 可选:Spring专属仓库,确保Spring依赖拉取无问题 --> <repository> <id>spring-release</id> <url>https://repo.spring.io/release</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
额外提示
- 配置完之后,记得执行
gradle clean build(Gradle)或者mvn clean install(Maven),清空本地缓存重新拉取依赖 - 如果还是有问题,可以检查一下亚马逊云的安全组或者NACl是否允许访问这些仓库的HTTPS端口(443)
内容的提问来源于stack exchange,提问作者Maxim Antonov
相关产品推荐
相关产品推荐

