MAVEN加载本地jar包

正常情况下,在以MAVEN创建的java工程中,引用jar包直接在本地Maven仓库或远程仓库中找到响应jar的maven依赖,直接添加到pom.xml的<dependencies>...</dependencies>中。

但最近在做第三方支付服务,该服务需要引入支付有关的几个jar包。而这些jar包在maven官方仓库中是没有的。

那么如何在添加本地的jar包到maven中并可以package成可执行jar包呢?

配置MAVEN环境变量

maven环境配置不在此赘述。

方法一 将本地jar包添加到本地仓库

添加本地jar包到本地Maven仓库

Maven安装jar包命令是

1
mvn install:install-file -Dfile=jar包的位置 -DgroupId=自定义groupId -DartifactId=自定义artifactId -Dversion=自定义version -Dpackaging=jar

例如:

1
2
mvn install:install-file -Dfile=F:\svn\hsxt-dev\09_20180605\hsxt-access-web\hsxt-access-web-aps\lib\commons-utils-0.0.1-SNAPSHOT.jar -DgroupId=commons-utils -DartifactId=commons-utils -Dversion=0.0.1-SNAPSHOT -Dpackagin
g=jar

在java工程pom.xml文件中添加依赖

1
2
3
4
5
6
<!-- 智能POS jar-->
<dependency>
<groupId>commons-utils</groupId>
<artifactId>commons-utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

package JAR包

1
mvn package

到此,package JAR包的方法跟平常一样。clean后package,在target目录中就会生成打包好的jar包。

方法二 将本地jar包添加到工程

添加jar到工程主目录的lib中

在工程主目录创建lib文件夹,然后将相应的jar包添加到lib文件夹下。

在pom.xml中添加依赖如下

1
2
3
4
5
6
7
8
<!-- 智能POS jar-->
<dependency>
<groupId>commons-utils</groupId>
<artifactId>commons-utils</artifactId>
<scope>system</scope>
<version>0.0.1-SNAPSHOT</version>
<systemPath>${basedir}\lib\commons-utils-0.0.1-SNAPSHOT.jar</systemPath>
</dependency>

说明:

  • groupId、artifactId、version任意填写。
  • scope表示从本地文件系统拿,一定需要配合systemPath属性使用。
  • systemPath为jar包的绝对路径
  • ${basedir}为项目根目录的绝对路径

注意事项!!

用方法二添加jar是可以在本地将第三方jar包添加到maven工程中的。但是在package时,这些第三方jar包不会被打入到jar包中。所以该方法只适用于本地开发。
如果想要用jar包部署项目,请参见上面方法一,将jar包安装到本地maven仓库。

本文参考