Maven引入本地Jar包,且打包时将其包含进去

转:https://www.jianshu.com/p/2896cba00ce1

最近使用SpringBoot做项目,需要引入其他工程的POJO包,由于第一次接触Maven,所以在网上随便找了一则例子将jar包放到工程下的lib(根目录新建)文件夹中,然后pom中引入,工程开发测试都OK,但是打包发布时,目录lib下的jar包总是打不进去,网上搜寻好久才找到答案,在此分享给大家。

问题解决

1.首先在工程根目录下新建文件夹lib, 目录放置jar包
在这里插入图片描述

之后在pom.xml中引入本地jar包,配置如下:

<dependency>
 <groupId>coupon-pojo</groupId>
  <artifactId>coupon-pojo</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/lib/coupon-pojo-1.0.jar</systemPath>
</dependency>

其中groupId和artifactId自定义取名,version为当前jar包版本(自定义),scope固定用system,systemPath中${project.basedir}为项目根目录(建议使用此方式),coupon-pojo-1.0.jar为jar包全名称。

2.如项目打包成war,则在<build>标签下的<plugins>中新增如下配置:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <configuration>
    <warName>${project.artifactId}</warName>
    <webResources>
      <resource>
        <directory>lib/</directory>
        <targetPath>WEB-INF/lib</targetPath>
        <includes>
          <include>**/*.jar</include>
        </includes>
      </resource>
    </webResources>
  </configuration>
</plugin>

其中:
groupId和artifactId固定;
warName为打包war名称(${project.artifactId}取的是pom中设置的值);
directory为工程中jar包所在路径;
targetPath为打包后jar包放置的路径,同上;
include为lib目录中的jar包,可配置*全部导入;

3.如果工程打包成jar,需要在pom.xml中添加如下配置:

 <resources>  
     <resource>  
         <directory>lib</directory>  
         <targetPath>BOOT-INF/lib/</targetPath>  
         <includes>  
             <include>**/*.jar</include>  
         </includes>  
     </resource>
 </resources>

build目录下新增
在这里插入图片描述

此配置方式能否在war包中适用,暂未尝试,有待各位尝试,本文只是解决本项目中所遇到的问题,仅做参考。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值