Maven 无法从仓库获取dependency Jar包时处理
在我们使用 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