maven项目依赖注入失败三种解决方案 Could not transfer artifact com.mchange:c3p0:pom:0.9.5.5 from/to central

目录

报错情况:Could not transfer artifact com.mchange:c3p0:pom:0.9.5.5 from/to central

解决方案

1.在maven设置文件settings.xml中添加镜像,使用阿里云仓库

2.在自己创建的maven项目的pom.xml中覆盖super pom的仓库内容

3.在C:\Users{你的用户名}\.m2路径删除.m2文件夹,让maven全部重新导入(有奇效)


报错情况:Could not transfer artifact com.mchange:c3p0:pom:0.9.5.5 from/to central

创建maven项目后,前期在pom.xml注入c3p0依赖时不管如何更换version或者groupId一直显示Could not transfer artifact com.mchange:c3p0:pom:0.9.5.5 from/to central(https://repo.maven.apache.org/maven2)的问题,依赖始终注入失败。

       <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>

解决方案

1.在maven设置文件settings.xml中添加镜像,使用阿里云仓库

在C:\Users{你的用户名}\.m2\ 下找到settings.xml,如果找不到或不确定具体路径,可以在IDEA的文件-设置中找到“用户设置文件”,就能知道其位置。

 然后在settings.xml里添加如下代码:

<mirrors>
        	  <!-- 阿里云仓库 -->
      <mirror>
           <id>alimaven</id>
           <mirrorOf>central</mirrorOf>
           <name>aliyun maven</name>
           <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>          
       </mirror>

       <!-- 中央仓库1 -->
       <mirror>
            <id>repo1</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo1.maven.org/maven2/</url>
       </mirror>

       <!-- 中央仓库2 -->
       <mirror>
             <id>repo2</id>
             <mirrorOf>central</mirrorOf>
             <name>Human Readable Name for this Mirror.</name>
             <url>http://repo2.maven.org/maven2/</url>
       </mirror>

</mirrors>

2.在自己创建的maven项目的pom.xml中覆盖super pom的仓库内容

参考https://stackoverflow.com/questions/12789488/how-do-you-stop-maven-from-trying-to-access-http-repo-maven-apache-org

可知,所有pom文件都会继承maven super POM的内容,其中关于super POM中关于仓库有如下配置

<repositories>
    <repository>
        <id>central</id>
        <name>Central Repository</name>
        <url>http://repo.maven.apache.org/maven2</url>
        <layout>default</layout>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

所以才会导致当依赖注入时会先去(https://repo.maven.apache.org/maven2)里找,而由于国内网络限制的原因,很多资源无法访问下载。

这时,需要在我们自己创建的该maven项目的pom.xml里添加如下代码,对super POM的仓库配置进行覆盖

<repositories>
      <repository>
            <id>central</id>
            <url>http://host:port/content/groups/public</url>
      </repository>
</repositories>

<pluginRepositories>
      <pluginRepository>
             <id>central</id>
             <url>http://host:port/content/groups/public</url>
       </pluginRepository>
</pluginRepositories>

3.在C:\Users{你的用户名}\.m2路径删除.m2文件夹,让maven全部重新导入(有奇效)

如果在尝试过方法1与方法2后,在刷新时依赖仍无法注入,比如此时显示“无法访问 Maven 3.8.1 http 仓库”的报错,建议删除C:\User{你的用户名}\ 下的.m2文件,清除缓存,让maven项目全部重新导入一次,重新建立.m2文件夹。可解决报错。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值