• Spring Boot 本地jar包


    一:问题场景

        在开发过程中,我们有时会遇到Maven中央库没有的jar包,比如公司自己开发的而又没有放入公司私库的jar包,这时就不能通过三围在pom中直接引入。那么怎么在项目中引入这些本地或第三方jar包呢?

    二:解决方法

        常用的解决方法主要有两种。

        第一种是将本地jar包安装在本地maven库。这种方法简单方便,以后其他项目需要引入时不需要再次安装。如果没有放入公司私库,则不适合协同开发,比如一位同事在本地安装了这个jar包,另一位同事通过SVN或git将代码下载下来后,由于本地库没有安装该jar包,可能会报错。

        第二种是将本地jar包放入项目目录中。这种方法解决了第一种方法中的问题,但需要在pom文件中加上少许配置,这种方法根据将项目打包成jar和war包而略有不同。

    三:详细方法

    (1)安装在本地maven库

        假设我们需要引入的包为 myjar-1.0.jar

    (1.1)打开cmd,进入myjar-1.0.jar所在的目录

    (1.2)执行如下命令:mvn install:install-file -Dfile=myjar-1.0.jar -DgroupId=com.ws.sample -DartifactId=myjar -Dversion=1.0 -Dpackaging=jar

    注意:install:install-file 中-file与install之间没有空格,三围可以根据自己需求设置

    然后去本地资源库看下是否有相应文件

    (1.3)在pom依赖中引入安装的jar包

     

    第一种方法介绍完毕

    (2)本地jar包放入项目目录中(项目打包成jar)

     (2.1)jar包结构

    (2.2)在本地项目目录中建一个目录专门来放jar文件,位置可根据需求设置,如项目根目录下建一个lib目录,并将本地jar包放入lib目录下。

    (2.3)pom依赖中加入如下配置

    说明:basedir是自带变量,指的是当前项目的绝对路径

     此时,在项目中使用myjar-1.0.jar包中类完全没有问题,但是我们来看看打包后结果:

     在mvn clean package将项目打包成jar包后,BOOT-INFlib目录下并没有我们引入的myjar-1.0.jar包

     这时,还需要在pom中加入如下配置

     

     再次打包,mvn clean package打包后结果:

    在使用mvn clean package将项目打包成jar包后,BOOT-INFlib目录下出现了我们引入的myjar-1.0.jar包

    项目引入本地jar包并打包成jar包的方法介绍完毕,2.4节将介绍一种和本节相似的方法。

    (2.4)通过资源来控制打包

    注意:第二个resource不能少,否则src/main/resources目录下资源不会被打包进项目jar包

    此种方法也需要配置spring-boot-maven-plugin,只是相对2.3中配置去掉configuration的配置,这种方法个人感觉没有2.3节方便

    (3)项目打包成war包

       (3.1)war包结构

    (3.2)我们按照第2节中方法,将项目打包成war包,而不是jar包,看看打包后结果:

        发现按照打包jar包的方法打包成war包时,本地jar文件并没有打包进来。

    (3.3)在pom中添加如下插件

    说明:插件将lib目录下的本地jar包打包进WEB-INF/lib目录

    mvn clean package,再次将项目打包成war包,再次看下打包结果:

     本地myjar-1.0.jar被打包进项目war包的lib目录了。

     第二种方法介绍完毕

    提升个人竞争力,欢迎关注我的微信公众号:破局人

  • 相关阅读:
    面向对象初识
    day 20 异常
    day 16 正则表达式
    day 13 生成器,推导式
    CSS
    html页面编写
    DAY 17常用模块
    DAY16 模块和包的导入
    DAY15 模块
    DAY14 函数(三)
  • 原文地址:https://www.cnblogs.com/fdzfd/p/7859376.html
Copyright © 2020-2023  润新知