Maven 手动添加 JAR 包到本地仓库
Posted mslog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven 手动添加 JAR 包到本地仓库相关的知识,希望对你有一定的参考价值。
Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,我宿舍的带宽是4兆的,
4个人共用,有时候用 Maven 来远程下载 JAR 包会显得很慢,一般我发现下载速度不明显的时候,我就 Ctrl + C 来终止它的下载。
然后改用手动来下载,因为用迅雷一类的工具来下载会快很多。我机子上 Maven 的本地仓库的很多 JAR 包我都是手动下载的。
手动下载的话就会带来一个问题,就是,怎么样手动将下载下来的 JAR 包添加到 Maven 的本地仓库。关于这个,网上也有很多资料。
我说下我的做法。
首先,
推荐几个好的 Maven 常用仓库网址:
http://mvnrepository.com/
http://search.maven.org/
http://repository.sonatype.org/content/groups/public/
http://people.apache.org/repo/m2-snapshot-repository/
http://people.apache.org/repo/m2-incubating-repository/
第一个是我最常用的,然后是第二个,然后是第三个,最后两个是 Apache 的私有仓库,我还没用过,不过感觉应该还可以吧...
接下来,还是一贯的作风,使用截图通俗易懂的方式来解说:
如果你看过我的上一篇:Spring邮件服务之html:Maven + Spring SMTP Mail With Html 文章,里面需要用到一个
spring-context-support-3.1.0.RELEASE.jar 的 JAR 包,我把它安装到本地仓库的时候把图截了下来,顺便写了这篇文章,
供有需要的网友参考。
首先,到 http://mvnrepository.com/ 这个网,在搜索栏中输入你要搜索的 JAR 包的关键字来搜索,下面直接贴图:
@1图
@2图
@3图
以 spring-context-support-3.1.0.RELEASE.jar 为例,在 @3图中已经给出这个 jar 包的 groupId,artifactId,version信息,
手动安装的时候这些信息不要改,否则 Maven 项目移植的话,jar 包下载就会失败。顺便把这信息帖下面,方便对照:
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
Maven 安装 JAR 包的命令是:
例如:
我下载的这个 jar 包是放到了 D:\\mvn 目录下(D:\\mvn\\spring-context-support-3.1.0.RELEASE.jar)
那么我在 cmd 中敲入的命令就应该是:
mvn install:install-file -Dfile=D:\\mvn\\spring-context-support-3.1.0.RELEASE.jar -DgroupId=org.springframework -DartifactId=spring-context-support -Dversion=3.1.0.RELEASE -Dpackaging=jar
回车,显示安装成功:
原则上Maven的设计是不需要这么做的,因为pom.xml中依赖的jar包会自动实现从中央仓库下载到本地仓库。但是公司设计了一个setting,如果本地仓库没有,就去setting指定的url中下载jar包,如果还没有就报错。
考虑到setting中url的jar包比较老,如果需要用最新的,则需要将jar包手动下载到本地仓库。
比如我下载了
lucene-queryparser-4.6.1.jar
怎么添加到本地仓库呢?
步骤:
1.cmd命令进入该jar包所在路径
2.执行命令
mvn install:install-file -Dfile=lucene-queryparser-4.6.1.jar -DgroupId=org.apache.lucene -DartifactId=lucene-queryparser -Dversion=4.6.1 -Dpackaging=jar
(不同的jar包相对应替换对应部分)
另外我尝试了下面的方法,发现不行:
直接写一个空的pom,里头包含对所需要jar包的依赖,通过这种方式希望将jar包下载到本地仓库。但是应用代码中没用到,maven命令没有下载这个jar包到本地仓库。
补充,-DgroupId和-DartifactId的作用其实是指定了这个jar包的安装在repository的安装路径,只是用来告诉项目去这个路径下寻找这个名称的jar包。比如:
mvn install:install-file -Dfile=freemarker-2.3.13.jar -DgroupId=freemarker -DartifactId=freemarker -Dversion=2.3.13 -Dpackaging=jar
就是安装到了repository\\freemarker\\freemarker\\2.3.13目录下,如果在dependency的依赖里也这么写的话,就可以到对应的目录去寻找。
对于maven中存在classifier的,例如
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.2.0</version>
<classifier>tests</classifier>
</dependency>
就加一个-D参数就可以了,如下:
mvn install:install-file -Dfile=hadoop-hdfs-2.2.0-tests.jar -DgroupId=org.apache.hadoop -DartifactId=hadoop-hdfs -Dversion=2.2.0 -Dclassifier=tests -Dpackaging=jar
来自:http://www.cnblogs.com/Kubility123/p/5666671.html
以上是关于Maven 手动添加 JAR 包到本地仓库的主要内容,如果未能解决你的问题,请参考以下文章