关于使用eclipse maven UpdateProject时报错,无法更新本地仓库的问题解决方案

在做项目中,需要从同事电脑中把Maven项目copy过来,但是copy的过程中只copy了代码,setting.xml文件和pom.xml,使用eclipse把项目导入,有红色的感叹号提示,由于我没有copy项目依赖的jar包,而这些包都放在maven仓库中。所以需要从仓库中拉jar包。

技术分享

设置好eclipse中maven的配置后,选中项目右键maven-update project 就会开始下载jar文件。

下载过程中遇到问题:1、eclipse后台提示某个具体的jar文件下载出错,错误信息有 Error 403  Forbidden。

2、从本地仓库中看到下在的文件都生成一个.lastUpdated为后缀的文件,百度了下这个文件是从中央仓库找不到下载文件导致的。

 

根据上面两个问题可以猜测 这个中央仓库应该不能用或者有权限限制,所以我又去查了下maven中如何配置本地仓库,和中央仓库相关知识。结论如下:

  一:设置Maven本地仓库

  Maven默认仓库的路径:~\.m2\repository,~表示我的个人文档;例如:C:\Users\nicho\.m2\repository;

  Maven的配置本地仓库的文件路径:E:\Maven\apache-maven-3.2.2\conf\settings.xml文件中进行配置的

我用的mac os系统,先找到当初配置的maven环境变量(时间比较早忘记放哪里了)。

打开终端输入:mvn -v     可以找到我本地maven的存放目录

技术分享

然后打开 /Users/NichoC/local/apache-maven-3.2.2/conf目录下的setting.xml文件 大约53行的位置有一串代码可以配置本地仓库:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/Users/NichoC/Desktop/mavenRep</localRepository>
-->

将标红的标签中的值换成我们想要设置的本地仓库地址即可,记得把注释的标签去掉以生效

 

  二:查看Maven中央仓库

     Maven最大的好处就是不用拷贝第三方Lib,也不用担心Jar冲突了;那么Maven中所需的Jar会在网络中央库存放着,这样我们只需配置一下,Maven就能在中央仓库中给我们下载本地仓库中;

  在Maven中路径:E:\Maven\apache-maven-3.2.2\lib\maven-model-builder-3.2.2.jar\org\apache\maven\model\下有一个pom.xml的文件

 技术分享

 

打开http://repo.maven.apache.org/maven2 会指向到中央仓库,但是限制打开地址会看到Error 403  Forbidden

我想这就是eclipse中后台提示错误的原因所在了吧

因为这个地址不能用了,那我们可以选择新的仓库去替换掉这个不能用的仓库,新地址可以为 

http://search.maven.org/#browse  或 http://maven.outofmemory.cn/

也可以不用管他,使用镜像来配置地址:

修改maven根目录下的conf文件夹中的setting.xml文件,内容如下: 

这里是阿里云中央仓库,国内镜像,速度很快,很好用

 <mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>

 <mirrorOf>,表示只为central仓库做镜像,如果想为所有的仓库做镜像那么可以改为:<mirrorOf>*</mirrorOf>

 

到这里为止,地址配置好了,再update project 之后,jar文件可以下载了。但是感叹号的问题还是存在求解答

 

文章来自:http://www.cnblogs.com/nichoc/p/6004967.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3