Maven 无法从仓库获取dependency Jar包时处理

来源:互联网 发布:电脑桌面日程软件 编辑:程序博客网 时间:2024/06/05 21:09

在我们使用 Maven 管理、构建项目时,我们的Maven操作流程中一关键步骤如下:

配置pom.xml

获取需要的依赖包,并配置到pom.xml中。一般,我们可以从 http://mvnrepository.com/ 网站上查询到相应依赖包的pom配置代码。

但有时候就是那么不巧,甚至是无奈。明明正确的pom配置,在Eclipse中会提示错误,相应的jar包也没下过来。项目中自然也无法引用该 jar 包中的类。这种问题可能是由于网络不够顺畅导致,也有可能是Maven的那啥仓库无法访问或者其中没有所需求的版本的jar包。

那么,我们可以这样做:

1、还是从 http://mvnrepository.com/ 网站上查询需要的依赖包,并将jar包与其pom文件下过来,名称则保持一样,比如:javax.el-api-3.0.0.jar、javax.el-api-3.0.0.pom,另外,自己创建一个javax.el-api-3.0.0.jar.sha1文本文件,看到它的名字,正如你可能猜测的那样,它就是用来存储这个jar包的sha1加密值的。于是,你需要进行第2步。

2、下一个sha1文件校验工具(下载地址),用这个工具计算出jar包的sha1校验码,然后将这个校验码保存到**.jar.sha1文件中。到目前为止,准备工作差不多了。继续~

3、将上面三个文件放到本应该是自动创建、下载的目录下(Eclipse自动根据pom.xml处理的)。由于它没能自动创建,那么,就只好我们亲自代劳了。

<dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>servlet-api</artifactId>

    <version>2.5</version>

    <scope>provided</scope>

</dependency>

比如上面这一段pom配置,groupId有点类似java里面的包。故我们在Eclipse 的Maven本地库(如何确定库路径:参看下图)








创建javax/servlet目录,而artifactId对应的就是一个目录名(我的意思是,即使它的值也是xxx.xxx,也只是直接创建名为xxx.xxx的目录),OK,到了version字段了,跟前面的一样,还是创建一个目录,比如这里就是创建一个名为2.5的目录。好,到现在为止,目录创建完了(C:\Users\Danny Tam\.m2\repository\javax\servlet\servlet-api\2.5),接着,把我们上一步的三个文件放入这个目录中。

4、更新pom.xml文件,我想现在它不再报错了吧 `(*∩_∩*)′

Good luck !!!

http://my.oschina.net/thc/blog/214534


0 0