问题概述:
我们经常会使用未在apache官网发布的jar依赖包,但是在后台程序发布的时候,这些依赖包需要加入到包程序里面去,此时我们再使用marvn进行打包的时候,会提示找不到依赖包中的内容,其情况诸如下图描述一样:
解决思路:
将我们依赖的jar包安装到我们本地的maven仓库里面去,然后在pom中添加刚才安装的jar包作为依赖项。如下图所示:
解决方法:
1. 入本地jar包所在目录(我的是lib目录)
2. 执行指令,把本地jar包安装到本地maven仓库
mvn install:install-file -Dfile=jna.jar -DgroupId=com.sun.jna -DartifactId=hc-jna -Dversion=1.7.0 -Dpackaging=jar
mvn install:install-file -Dfile=examples.jar -DgroupId=com.sun.jna.examples -DartifactId=hc-jna-examples -Dversion=1.7.1 -Dpackaging=jar
3.在pom中添加引用
<dependency>
<groupId>com.sun.jna</groupId>
<artifactId>hc-jna</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>com.sun.jna.examples</groupId>
<artifactId>hc-jna-examples</artifactId>
<version>1.7.1</version>
</dependency>
基础知识回顾
一、maven本地仓库认识
maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示:
1 groupId
2 artifactId
3 version
4 jar包的依赖
如下图所示:
如果要将maven本地仓库中的jar包添加到项目中,直接打开4 xx.pom文件,将改jar包的相关依赖复制pom.xml文件中即可。
二、将本地jar包添加到本地仓库
原则上Maven的设计是不需要这么做的,因为pom.xml中依赖的jar包会自动实现从中央仓库下载到本地仓库,但也有特殊情况;比如我下载了。
lucene-queryparser-4.6.1.jar
怎么添加jar到本地仓库呢?
步骤:
1.cmd命令进入该jar包所在路径
(快捷键:shift+右键 选择在此处打开命令行窗口)
ps:jar包可以在任意一个文件夹目录下面,不要放在分区的根目录,也不要自己去创建maven中的相关目录。
不需要去创建相关目录,mvn install之后会自动将相关的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
其中:-DgroupId和-DartifactId的作用是指定了这个jar包在repository的安装路径,只是用来告诉项目去这个路径下寻找这个名称的jar包。
一般用的jar包都是在mven仓库中下载的,所以groupId和artifactId直接将复制maven仓库中的设置即可。
参考文献:
https://www.cnblogs.com/lixuwu/p/5855031.html