在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢?一般有两种方法。1,将本地jar包安装在本地maven库 ;2,将本地jar包放入项目目录中。本文主要讲第二种方式,这又分两种情况,一种是打包jar包,第二种是打包war包
一,打包jar包
先看看jar包的结构,打包后jar包的路径在BOOT-INF\lib目录下,依赖的所有jar包都在此目录中,如下图所示。
jar包在Spring boot jar包中的位置首先,在项目目录中resources下创建文件夹jar用来存放本地jar包,如下图所示。
在resource目录下创建jar文件夹放入第三方jar包第二、pom文件中加入如下内容,以添加json-lib-2.3-jdk15.jar为例。
<dependency>
<groupId>com.ckfinder</groupId>
<artifactId>json-lib</artifactId>
<version>2.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/jar/json-lib-2.3-jdk15.jar</systemPath>
</dependency>
注意,groupId,artifactId,version可随便写,这时候在项目中运行是没问题了,但是使用命令mvn clean package打包之后BOOT-INF\lib里面并没有json-lib-2.3-jdk15.jar包,还需要pom文件中做如下配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
注意粗体部分的配置,之后再使用mvn clean package打包就可以了。
二,war包
相对与jar包,第三方jar包在war包中的目录如下图所示:
jar包在war包中的位置使用mvn clean package命令打包时需要在pom文件加入以下内容
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<webResources>
<resource>
<directory>src/main/resources/jar/</directory>
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
网友评论