如何把一个jar包打包到本地maven仓库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把一个jar包打包到本地maven仓库相关的知识,希望对你有一定的参考价值。

本地jar添加到maven仓库的方法。 有些包在mvn
repository是没有的,例如IKAnlyzer.jar,那我们又想让maven帮助我们管理,怎么办呢?  

一、安装maven环境,配置环境变量

二、下载你需要加入到maven的jar包

1、配置maven环境,计算机-属性-高级系统设置-环境变量,添加系统变量MAVEN_HOME。值指向bin层,复制到变量值里面。

我下载的是apache-maven-3.3.9 


2、下载需要加入到maven的包,我这里的例子是IKAnlyzer,因为他在maven仓库里没有。 

2.1、先测试maven环境变量是否安装成功

cmd后输入 mvn -v

2.2、在cmd中输入

mvn install:install-file
-DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dfile=E:\\IKAnalyzer3.2.8.jar -Dpackaging=jar

这些参数与pom.xml里面的参数对应关系。其实4是本地jar的路径。我把包放在E盘了。
如图:

groupId:DgroupId
artifactId:jms
version:Dversion

那在pom.xml 加入:

    <span style="white-space:pre;">     </span><dependency>  

    <span style="white-space:pre;">    </span><groupId>javax.jms</groupId>  

    <span style="white-space:pre;"> </span><artifactId>jms</artifactId>  

    <span style="white-space:pre;"> </span><version>1.1</version>  

    </dependency>   

参考技术A mvn install

如何在maven中添加本地jar包

参考技术A 原则上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的,例如

org.apache.hadoop
hadoop-hdfs
2.2.0
tests

就加一个-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

以上是关于如何把一个jar包打包到本地maven仓库的主要内容,如果未能解决你的问题,请参考以下文章

如何在maven中添加本地jar包

如何使用maven把模块生成的jar包上传到中央仓库去

如何把本地仓库批量上传到maven仓库

如何在maven中添加本地jar包

如何把本地maven仓库里的jar包

maven怎么deploy到本地仓库