zoukankan      html  css  js  c++  java
  • maven引入本地jar包的方法

    感谢原文作者:陈灬大灬海
    原文链接:https://www.cnblogs.com/chywx/p/11563318.html

    maven作为包管理工具,好处不必多说

    但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖)

    如果直接下载到本地之后,怎么整合到自己的maven工程呢?

    方式挺多的,下面列举四种方式

    1. 上传到maven中心仓库

    https://oss.sonatype.org/

    愿意折腾可也搞搞,可以参考 如何发布Jar包到Maven中央仓库(确实比较麻烦)

    如这是我手动上传到maven中央仓库的jar包 https://mvnrepository.com/search?q=chendahai

    优点:可以直接在pom.xml中引入,打包部署没有问题

    缺点:上传复杂,麻烦(创建工单,生成秘钥等等)

    2. 搭建maven私服

    手动在后台管理页面上传,之后pom.xml引入

    上传方式查看 maven私服nexus上传第三方jar包以及下载

    优点:下载速度快,maven聚合项目更适用,内部适用deploy即可,打包部署没有问题

    缺点:相比第一种还要麻烦些,还占用本地服务器资源

    3. 传统方式

    java SE的套路

    新建lib包,之后导入(eclipse直接build path)(idea麻烦些:File→project structure→libraries→+jar包)
    在这里插入图片描述

    4. pom文件scope的system属性

    优点:配置后之后直接引入,maven reImport即可

    缺点:没啥缺点,就是配置者得费些时间

    前置条件
    要引入如下taobao-sdk-java.jar

    操作

    1. 自定义目录,这里在project的根目录新建lib文件夹,将jar放进去
      在这里插入图片描述
    2. pom.xml中引入
    		<dependency>
              <groupId>dingding</groupId>
              <artifactId>dingding</artifactId>
              <version>2.8</version>
              <scope>system</scope>
              <systemPath>${project.basedir}/lib/taobao-sdk-java.jar</systemPath>
            </dependency>
    

    注意:

    • groupId:自定义
    • artifactId:自定义
    • version:自定义
    • scope:必须是system
    • systemPath:jar包的路径(idea编写的时候会有提示的)

    通过上述方式,在开发环境没有什么问题,不会存在什么包找不到等情况

    但是,maven project部署一般打包发布,所以打包是需要额外配置的(上述的第一二中方式不需要做额外处理)

    处理打包
    打包的时候需要做如下配置,需要通过resource标签引入,位置build→resources→resource

    处理打包

    打包的时候需要做如下配置,需要通过resource标签引入,位置build→resources→resource

    <build>
       <resources>
        <resource>
          <directory>lib</directory>
          <targetPath>/BOOT-INF/lib/</targetPath>
          <includes>
            <include>**/*.jar</include>
          </includes>
        </resource>
       </resources>
     </build>
    
    • directory:指定lib文件夹的位置,由于是相对工程根目录,所以直接写上lib即可
    • targetPath:打包到的文件夹位置,写上BOOT-INF/lib即可,或者是WEB-INF/lib。【斜杠(/)加不加都行,如果是mac的话写./】
    • includes:一般都是以jar结尾,就写**/*.jar

    较为完整的pom.xml

    <dependency>
                <groupId>dingding</groupId>
                <artifactId>dingding</artifactId>
                <version>2.8</version>
                <scope>system</scope>
                <systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1479188381469-20190628.jar</systemPath>
            </dependency>
    
        </dependencies>
        <build>
            <resources>
                <resource>
                    <directory>lib</directory>
                    <targetPath>/BOOT-INF/lib/</targetPath>
                    <includes>
                        <include>**/*.jar</include>
                    </includes>
                </resource>
            </resources>
    

    ok,mvn package即可。

  • 相关阅读:
    rtmp_specification_1.0
    RTSP Spectification
    FFMPEG 入门
    Spring Cloud Gateway + Spring Oauth 2.0 整合(服务端与资源端分离)
    深入浅出 Spring Cache 使用与整合(附源码解析)
    Java集合之ArrayList源码分析
    SpringBoot+Mybatis+MybatisPlus 入门整合(三)
    SpringBoot+Mybatis+Generator 逆向工程使用(二)
    SpringBoot+Mybatis整合入门(一)
    SpringBoot+SpringData 整合入门
  • 原文地址:https://www.cnblogs.com/tfxz/p/12621486.html
Copyright © 2011-2022 走看看